Windows 2008 R2にIIS 7 + PHP 5.3.8の稼働環境を構築する

Windows 2008 R2でIIS + PHPの稼働環境を構築してみます。

参考にしたサイトはこちら。
PHP on Windows ガイドライン (ドラフト)


※2013/01/13 追記

Windows Server 2012で同様の環境を作ってみました。
Windows Server 2012にIIS 8 + PHP 5.4.10の環境を構築する





IISのインストール



サーバーマネージャーを起動し、左のツリーで[役割]を選択。
[役割の追加]ウィザードをクリックします。

01_001_20111203155406.png


ウィザードが開始されたら次へ。

01_002_20111203155406.png


サーバーの役割の選択画面で、[Webサーバー(IIS)]にチェックをつけて次へ。

01_003_20111203155406.png


確認画面が表示されます。次へを選択。

01_004_20111203155406.png


[Webサーバー] - [アプリケーション開発] - [CGI]をチェックし、次へ。

01_005_20111203155405.png


インストール内容の確認画面が表示されます。
内容に誤りがなければ[インストール]を押して、インストールを実行します。

01_006_20111203155405.png


自動更新が有効になっていないという警告が出ましたが、IISのインストールは
完了しているようです。

01_007_20111203155507.png


ブラウザで、http://[サーバーのIP]/に移動し、こんな画面が表示されたら
IISのインストールは成功です。

01_008_20111203155507.png







PHPのダウンロードと設定



http://windows.php.net/download/
ここから、VC9 x86 Non Thread Safeのzipファイル、
「php-5.3.8-nts-Win32-VC9-x86.zip」をダウンロードします。

ダウンロードしたファイルを、C:\php5というフォルダに解凍しました。


C:\php5\php.ini-productionというファイルをphp.iniという名前でコピーします。
コピーしたphp.iniをメモ帳で開き、以下の項目を設定します。



fastcgi.impersonate=1

cgi.fix_pathinfo=1

cgi.force_redirect=0 ;コメントをはずし、値を1から0に変更

error_log = c:/php5/logs/php_errors.log

date.timezone = Asia/Tokyo

open_basedir = "C:\inetpub\wwwroot"

extension_dir = "./ext"



※きちんと設定しておかないと、phpinfoの結果を表示しようとしても500エラーになります。
これで結構はまりました。



編集が終わったら、php.iniを上書き保存します。

また、error_logの出力先に指定したディレクトリ「c:\php5\logs」を作成しておきました。







c:\php5へのアクセス権の設定



c:\php5フォルダを右クリックし、プロパティを表示。
セキュリティタブを選択し、[編集]ボタンをクリックします。

01_009_20111203155506.png


アクセス許可のダイアログが表示されるので、[追加]をクリック。

01_010_20111203155506.png


選択するオブジェクト名に「iis_iusrs」と入力して、[名前の確認]をクリック。

01_011_20111203155506.png


「コンピューター名\IIS_IUSRS」に変換されたら、正しく入力出来ています。
OKをクリックして、c:\php5へのアクセス権を与えます。

01_012_20111203155506.png


最終的には、以下のような表示になるはずです。

01_013_20111203155558.png








Microsoft Visual C++ 2008 再頒布可能パッケージ (x86)のインストール




phpはVisual C++ 2008でビルドされているため、ランタイムのインストールが必要でした。

Microsoft Visual C++ 2008 再頒布可能パッケージ (x86)

ここからvcredist_x86.exeをダウンロードして、インストールしておきます。


なお、ランタイムをインストールせずにphpのプログラムを実行しようとすると、
イベントビューアーのWindowsログのアプリケーションに、こんなログが出力されます。


"C:\php5\php-cgi.exe" のアクティブ化コンテキストの生成に失敗しました。
従属アセンブリ Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8" が見つかりませんでした。
詳細な診断を行うには sxstrace.exe を実行してください。









IISへPHPランタイムの登録




スタートメニューから、[管理ツール] - [インターネットインフォメーションサービス]を選択します。

01_014_20111203155558.png


ツリーで[サイト] - [Default Web Site]を選び、[ハンドラーマッピング]を選択。
[機能を開く]をクリックします。

01_015_20111203155558.png


右側の[モジュールマップの追加]をクリックします。

01_016_20111203155557.png



要求パス *.php
モジュール FastCgiModule
実行可能ファイル C:\php5\php-cgi.exe
名前 phpFCgi

上記の内容を入力してOK

01_017_20111203155557.png


確認メッセージが表示されるので、はいを選択。

01_018_20111203155557.png


こんな感じで、phpFCgiが有効になりました。

01_019_20111203155639.png







動作確認




C:\inetpub\wwwrootにinfo.phpというファイルを作成しました。

内容は以下のとおり。


<?php phpinfo(); ?>




ブラウザで、http://[サーバーのIP]/info.phpに移動すると、以下のような表示になるはずです。

01_020_20111203155639.png






参考URL



PHP on Windows ガイドライン (ドラフト)
http://technet.microsoft.com/ja-jp/iis/gg535422

IIS 7.0 で CGI や PHP を実行できるようにする
http://network.station.ez-net.jp/server/microsoft/windows/2008/iis7_php.asp




関連記事

コメント

マイクロソフトのドキュメントを参考にしてもできず、悩んでいたところ、こちらを参照してたちまち解決しました。
ありがとうございました。

Re: タイトルなし

お役に立てたようで嬉しいです。

大変参考になりました。助かりました。

結構手順が難しいですよね・・・
お役に立てて嬉しいです。

参考になりました。
非公開コメント

プロフィール

Author:symfo
blog形式だと探しにくいので、まとめサイト作成中です。
Symfoware まとめ

PR




検索フォーム

月別アーカイブ