cakephp.jpに話題になっていたので、XP Pro(IIS 5.1), FastCGI, PHP 5.2.8, ISAPI_Rewrite3, CakePHP 1.2 Final でのサイト構築方法について再確認してみた。

  • プログラムの追加・削除からWindowsコンポーネントIIS」のうち最低限「WWWサービス」を入れる。
  • PHPサイトより、zip packageを取得する。
  • ZIPファイルを展開し、php.exeのあるフォルダを C:\PHP(異なるフォルダにインストールする場合、以下を適当に読み替えること)とする。IISPHPを使う場合は「IUSR_マシン名」アカウントに C:\PHP の読み取り権限を付与すること。 C:\PHP\php.iniは適宜修正する。
  • システム環境変数を修正する。PATH に C:\PHP を追加し、PHPRC に C:\PHP を設定する。
  • FastCGI for IIS をインストールする。http://www.iis.net/php によると XP は FastCGI Extension for Internet Information Services 6.0 が使える。msiをダウンロードし実行する。関連ファイルは %WINDIR%\system32\inetsrv にインストールされる。
  • FastCGI for IIS の設定を行う。コマンドプロンプトで以下を実行する。詳細は http://www.iis.net/php にある。

> CD %WINDIR%\system32\inetsrv
> cscript fcgiconfig.js -add -section:"PHP" -extension:php -path:"C:\PHP\php-cgi.exe"
> net stop iisadmin
> iisreset

  • FastCGI Error の表示が出る場合、IISマネージャで規定のサイトのホームディレクトリ・アプリケーション保護を「低」にする。
  • http://www.helicontech.com/download-isapi_rewrite3.htm より、 ISAPI_Rewrite3_0058_Lite.msi をダウンロードしインストールする。
  • IISマネージャでWebサイトのISAPI_RewriteからConfigをEditする。app/webroot/.htaccess の内容に「RewriteBase /」を追加すると動いた。app/webroot をドキュメントルートとする場合、最終的な内容は以下となった。

RewriteEngine On
RewriteBase /
RewriteRule ^img/thumb/(.*)$ thumb.php?url=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]