Windows Server 2008 & IIS7.0へのPHPのインストール手順を示します。
- ダウンロード
PHP for WindowsからNon Thread Safeのzipファイルをダウンロードする。- PHP5.3以降の場合は、VC9 x86 Non Thread Safe
- PHP5.2の場合は、VC6 x86 Non Thread Safe
※将来x64用などがリリースされたら、環境にあったものをダウンロードする。
今回は「5.2.10 VC6 x86 Non Thread Safe」のzipファイルをダウンロードした。 - ダウンロードしたファイルをインストールしたい任意のフォルダに解凍する。
ex.) C:¥php52 - 以降、「PHP_HOME」と記述する。
※C:¥Program Files (x86)の下などにはインストールしない方がよい。PEARのライブラリをインストールするときなどに「Invalid configuration directive」というメッセージが出てうまくいかないから。(このサイトの画面サンプルではそこにインストールしちゃってるけど…) - 設定ファイルの作成
インストールしたフォルダにある、php.ini-recommendedファイルを、同じフォルダにphp.iniという名でコピーする。
これがPHPの設定ファイルになる。 - PATHを通す
システム環境変数のPATHにPHP_HOMEを追加する。
ex.) PATH=.;C:¥Windows¥System32;C:¥php52 - 設定ファイルの編集
(3)で作成したphp.iniファイルに、以下のパラメータを追記する。fastcgi.impersonate = 1
cgi.fix_pathinfo=1
cgi.force_redirect = 0
extension_dir = "./ext"
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
date.timezone = Asia/Tokyo以下はのパラメータを環境に応じて設定する。
SMTP SMTPサーバーの名称またはIPアドレス smtp_port SMTPサーバーへの接続ポート番号 sendmail_from Fromに使用するアドレス ex.)
SMTP = smtp.example.com
smtp_port = 25
sendmail_from = me@example.comphp.iniを変更したらIISを再起動する。
注)
SMTPサーバーは、POP before SMTPやSMTP Authなどの認証には対応していない。
認証が不要なSMTPサーバーがない場合は、それを構築しよう。 - IISの設定変更
- [スタート] - [管理ツール] - [インターネット インフォメーション サービス (IIS) マネージャ]を起動する。
- 左側のツリーからコンピュータ名を選択し、「ハンドラ マッピング」をダブルクリックする。

- 右側の操作エリアの「モジュールマップの追加」をクリックする。

- 「モジュールマップの追加」画面で以下を入力する。
要求パス *.php モジュール FastCgiModule 実行可能ファイル (オプション) "{PHPをインストールしたフォルダ}¥php-cgi.exe" ex.) "C:¥Program Files (x86)¥php52¥php-cgi.exe"
名前 PHP via FastCGI - 「モジュール マップの追加」メッセージで、「はい」をクリックする。
- PHPのハンドラマッピングが追加される。

- 既定のドキュメントにindex.phpを追加する。
左側ツリーで「コンピュータ名」を選択し、「既定のドキュメント」をダブルクリックする。

- 「既定のドキュメント」画面で、右側の操作エリアの「追加」をクリックする。

- 「既定のドキュメントを追加」画面で、「index.php」と入力する。
- 「既定のドキュメント」画面に戻り、index.phpが一覧に追加されていることを確認する。
- FastCGIの設定をする。
左側ツリーで「コンピュータ名を選択肢、「FastCGIの設定」をダブルクリックする。

- 「FastCGI Settings」画面で「~¥php-cgi.exe」をダブルクリックする。

- 「Edit FastCGI Application...」画面で設定をする。
「ActivityTimeout」がデフォルトで30秒になっており、これだとインストールなどに失敗するアプリケーションもあるので、長めにするとよい。

- 動作確認
- IISの修正プログラムをあてる。
このままのIIS7.0では、REQUEST_URIが正しく解釈できないという致命的な不具合がある。
Microsoftのサポートサイトで配布されている修正プログラム(http://support.microsoft.com/kb/954946)を適用する。
以上
[2008/08/19] PHP5.3のリリースに伴い、内容を若干修正しました。

