最終更新:2011-04-08 (金) 06:07:26 (4760d)  

FastCGI/IIS
Top / FastCGI / IIS

PHP 5.3php5isapi.dllが無かったのでFastCGIで動かす。

FastCGIのインストール

FastCGIの設定

cscript %windir%\system32\inetsrv\fcgiconfig.js -add -section:"PHP" -extension:php -path:"D:\php\php-cgi.exe"

とやると

C:\WINDOWS\system32\inetsrv\fcgiext.ini

[Types]
php=PHP

[PHP]
ExePath=D:\php\php-cgi.exe

と書かれる。

PHPの設定

fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo=1
cgi.force_redirect = 0

php.ini

php-cgi-fcgi.ini

という名前で置いておくと読み込んでくれる。

IISの設定

  • IISの設定の「ホームディレクトリ」->「アプリケーションの設定」->「実行アクセス許可」に
    • 実行可能ファイル:C:\WINDOWS\system32\inetsrv\fcgiext.dll
    • 制限:GET,HEAD,POST
  • で登録。

メモ

  • FastCGI は、CGI と同じくリクエストの処理をプロセスで行いますが、通常の CGI とは違い、処理が終了しても起動したプロセスをシャットダウンすることはせず、次のリクエストの処理に再利用します。
  • FastCGI がホストするプロセス内での処理は、シングルスレッド?で行われるため、マルチスレッドに対応するためのコードが入っていない ( Non Thread Safe ) ランタイム を使用することができます。