Windows上の PHP-FastCGI

概要

NGINX は FastCGIデーモンを使ってWindows上でPHPとやり取りをすることができます。これはPHPと同梱されています: php-cgi.exe。php-cgi.exe -b 127.0.0.1:<port> を実行し、NGINXの設定ファイル内で 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. https://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
TOP
inserted by FC2 system