どうも、tMorrissです

環境構築するために毎回調べるのも面倒なので自分用に備忘録を。
完全に自分用に書いているので雑ですし自分の環境しか想定していないのでココの言うとおりにして不具合が起こっても責任は持てません。(画像も使っていないくらいの雑さ)

OSはWindows Server 2012 R2 Datacenterです。
普通に買うと120万円するOSが無料で使えるとは、学生とは凄いものですな...

まずサーバーマネージャーの「役割と機能追加ウィザード」でIISを追加します。
その際「Webサーバー」→「Webサーバー」→「アプリケーション開発」→「CGI」にもチェックを入れておきます。

次にhttp://windows.php.net/download/よりphpをダウンロードします。
解凍し、出てきたフォルダを適当な場所に移動し、「php」などとリネームしておく。(今回はC:/phpとした)
そのフォルダに入っている「php.ini-production」をコピーし「php.ini」とリネームする。

このファイルでphpの細かい設定を変えます。
編集箇所は以下のとおり
  • cgi.fix_pathinfo = 1
  • fastcgi.impersonate = 1
  • cgi.forceredirect = 0
  • fastcgi.logging = 0
  • error_log = c:/php/log/php_errors.log
  • date.timezone = Asia/Tokyo
  • extension_dir = "./ext"
とりあえず調べて出てきたものを全て変えていったので不要なものや、変えたほうが良い箇所はあるかもしれません。自分はとりあえずこれで動いたのでこのままにしています(セキュリティとか大丈夫だろうか...)
あとはログファイルを作成しておけばphpフォルダはとりあえず完成です。

ここで動作確認をします。
phpフォルダ内のphp-cgi.exeをダブルクリックで実行した際にエラーメッセージが出なければ正常に使えています。
私は「コンピュータにMSVCR100.dllがないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてください。」というエラーが出ました。
この場合はVisual Studio 2012 更新プログラム 4 の Visual C++ 再頒布可能パッケージをインストールすることで解決できました。
他のエラーが出ている場合はphp.iniの設定を間違っている可能性があります...

ここからはIISマネージャーでの設定です。
phpをインストールしたいサイトの機能ビューより「ハンドラー マッピング」 を開きます。
「モジュール マップの追加」で
設定箇所設定値
要求パス*.php
モジュール>FastCgiModule
実行可能ファイル{phpをインストールしたフォルダ}/php-cgi.exe
と入力する。その下の「要求の制限」の「要求のマップ先が次の場合のみハンドラーを呼び出す」を「ファイルまたはフォルダー」にしておく。

IISのフォルダだけでなくphpフォルダもアクセス権限を適切に設定すれば繋がるはずです...
アクセス権限はよくわかりませんが「User」と「IIS_IUSRS」を追加すれば使えました。

ゴチャゴチャとイロイロ設定した後に書いたので書き漏らしがあるかもしれませんがとりあえずこれで使えるようになるはずです。

ではでは
tMorriss