Windows上の PHP-FastCGI

概要

NGINX は FastCGIデーモンを使ってWindows上でPHPとやり取りをすることができます。これはPHPと同梱されています: php-cgi.exe。php-cgi.exe -b 127.0.0.1:<port>を実行する必要があり、 NGINX設定ファイル内でfastcgi_fastcgi_pass_ 127.0.0.1:<port>; を使用します。起動された後でphp-cgi.exeはコマンドプロンプト ウィンドウ内で接続のためにlistenし続けるでしょう。windowsを隠すために、小さなユーティリティRunHiddenConsoleを使います。

ステップ

  1. NGINX for Win32 <install_win32_binaries_>_をインストールします。
  2. php-cgi.exephp.exeと同じディレクトリ内にインストールされるようにして、PHPのWindowsバイナリをインストールします。
  3. 以下と同じように、どこかに(たとえば、c:\nginx\の中に)バッチファイルstart-php-fcgi.bat を作成します。

start-php-fcgi.bat

@ECHO OFF
ECHO Starting PHP FastCGI...
set PATH=C:\PHP;%PATH%
c:\bin\RunHiddenConsole.exe C:\PHP\php-cgi.exe -b 127.0.0.1:9123

nginx.conf

root c:/www;

location ~ \.php$ {
    fastcgi_pass   127.0.0.1:9123;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

PHPとNGINXの自動起動

  1. システムが起動する時にSYSTEMアカウントで上のバッチファイルが実行するように基本的な(Windows Vista上の)タスクをスケジュールします。
  2. http://kevinworthington.com/nginx-for-windows/からWindows NGINXを使う場合は、開始ディレクトリC:\nginx内でシステムが起動する時にSYSTEMアカウントでC:\nginx\conf\start-nginx.batファイルを実行するように基本的な(Windows Vista上の)タスクをスケジュールします。
  3. NGINXの自家製のCygwinビルドは以下のようなバッチファイルを使ってスケジュールすることができます:
cd /d C:\cygwin\bin && bash -c /usr/local/nginx/sbin/nginx