64 ビット版の Windows Server 2008 に 32 ビット版のみ提供されている php5 をインストールするのには、ちょっとコツがいることがわかりました。
従来の方法ではまず動かない
従来どおりにインストールを行い、phpinfo() を表示させようとすると、エラー 503 が表示されました。ISAPI フィルタもハンドラマッピングも php 向けに指定したにもかかわらずエラーが表示されるので、ネットで調べてみると、DefaultApplicationPool の「32ビットアプリケーションの有効化」を[True]にすると良いとあったので、True にしてみたところ、程なくして DefaultApplicationPool が停止してしまいました。
そのときに報告されたものがこのイベントエラーです。
イベントID:2280
モジュール DLL C:\Windows\system32\RpcProxy\RpcProxy.dll を読み込めませんでした。このデータはエラーです。
暫く試行錯誤を繰り返していたのですが、この環境では ISAPI フィルタによる設定は無理そうだということがわかってきたので、途中で FastCGI を使う方法に切り替えました。
FastCGI で PHP を動かす
IIS 7 のインストールオプションで、CGI を選択して IIS7 をインストールすることによって、php-cgi.exe を呼び出して実行させることが可能です。
手順を説明します。
1. php5 の最新版をダウンロードして、適当なところに配置する(例:c:\php)。
php5 はここからダウンロードできます。
2. php.ini-recommended ファイルをコピーして php.ini というファイルに名称変更し、これをメモ帳などで開いて次に該当する行を修正して保存する。
(先頭のセミコロンを外して修正。該当するものがない場合は行を追加。)
fastcgi.impersonate = 1
cgi.fix_pathinfo=1
cgi.force_redirect = 0
open_basedir ="c:\inetpub\wwwroot"
extension_dir = "./ext"
3. コントロールパネルより「システム」をダブルクリックして、左ペインのメニューから「システムの詳細設定」をクリック。“環境変数”ボタンをクリックして システム環境変数の一覧に表示される path 変数に php へのパスを追加。
(c:\php; を追加すれば良いです。)
4. インターネット インフォメーション サービス(IIS) マネージャーを開き、ハンドラマッピングから「モジュールマップの追加」を選択し、以下の情報を追加。
要求パス:*.php
モジュール: FastCgiModule
実行可能ファイル(オプション): C:\php\php-cgi.exe
名前:PHP
OK を押して保存します。
5. IIS を再起動して、php テストページを表示させる。
以下のファイルを作って phpinfo(); を入れた php ファイルを作成してブラウザで表示確認。
php の情報ページが表示されれば成功です。
今回は以下のサイトを参考にしました。
Using FastCGI to Host PHP Applications on IIS 7.0
2 件のコメント:
まったく同じ環境で、phpがうまく動かず困っていました。いろいろ探し回ってここにたどり着きました。
記載されていた手順どおりに行った結果、バッチリ動きました。
ご説明がとてもわかりやすく本当に助かりました!
匿名 様、
php がうまく動作するようになって良かったですね!
お役に立てて何よりです。:)
コメントを投稿