[HOW TO] IIS7.0でFastCGI+PHP5環境を作ってみる
-
2007年9月8日 10:22モデレータ
// はじめに
IISはPHP環境として動作させる上でスレッドセーフで無いライブラリの利用にISAPI拡張が適していないなど多くの要望がIISの開発チームには寄せられていたといいます。IISチームはこの点を重大に捉え、PHPをご利用になっている方々向けの支援を強化するためにZend Technologies 社との協業をしたり、IISに手を入れたりと色々と動きだしました。
// PHP動作環境の構築
IIS.NETにその例が載っていますが、日本語で実際に手順を確認してみましょう。IIS7にはVistaと2003の環境が考えられますが、ここではVistaでの方法を書きます。XPや2008用はもう一つのフォーラムで取り上げることにします。
また、ここでは www.php.net で提供しているPHPバイナリを利用します。Zend社のCoreはインストーラもあり、さらに簡単にできますが、敢えてここではIIS開発チームがやっている通りの方法で書いてみます。
1. IIS7を用意する
インストールはインストール方法のHOW TOをご覧ください。http://localhost にアクセスしてきちんとIIS7が動作していることを確認します。
2. FastCGIを入手する
2008は標準で入っているのでこの手順が要りませんが、Vistaはインストールが必要です。
http://www.iis.net/downloads/default.aspx?tabid=34&i=1299&g=6
※まだ最終製品版ではありませんので、注意。3. FastCGIをインストールする
管理者実行でコマンドプロンプトを開き、cd \fcgi\x86
fcgisetup.exe /install /add c:\php\php-cgi.exe php,phpt4. PHPバイナリを入手する
http://www.php.net/downloads.php へアクセスいただき、FastCGIでの動作を想定してノン スレッドセーフなバイナリのZipを入手します。これを書いている現時点では 5.2.4 があります。5. PHPバイナリを展開する
ここではC:\PHP に展開しましょう。6. PHP.iniを作成、編集する
php-dist.ini を php.ini としてコピーする。
extension_dir を c:\php\ext に変更する。7. 動作確認用のPHPファイルを作る
phpinfo 関数がいいでしょう。文法は無視してます、ご容赦。
メモ帳でgogo.php という名前で下記だけ書いたテキストファイルを作ります。
<?php phpinfo() ?>8. 実際にアクセスしてみる
http://localhost/gogo.phpWindows Server 2008での注意点は、
- Beta 3 以降 FastCGI はCGIの機能をインストールすると一緒にもう入ってます。
- fcgisetup ではなく、手で設定します。今度 それも書きます。
単純にハンドラマッピングの機能でモジュールと拡張子phpを紐づけるだけです。
*.php、モジュールにFastCGIを選ぶ -> CGIを選ぶと従来のCGI動作になりますので性能比較なんかしてみるといいでしょう。実際のサイトを設定するにはindex.php を既定のドキュメントに追加するとか色々あると思いますが、その辺も含めてまた書きます。
- 移動 奥主 洋Microsoft Employee, Moderator 2011年2月8日 13:10 新フォーラムへ (移動元:Internet Information Services 7.x – 全般)
すべての返信
-
2007年11月12日 18:03モデレータ
IIS7 上での著名PHPアプリケーションの動作については今後も IIS 製品開発チームが http://www.iis.net/php で整理を続けていくことをこれも IT Forum で発表しているようです。また、IIS6 用の FastCGIの製品版が提供開始になったことでPHPを利用する環境として IIS を検討いただけるケースが増えてくると思います。IIS7 については 来年のWindows Server 2008 の提供の際に標準で搭載され、IIS7の機能で CGI のインストールを選択すると FastCGI も一緒にセットアップされることになります。
IIS製品開発チームの親分であるBill StaplesがPleskのIIS7対応についてふれていたりします。
http://blogs.iis.net/bills/archive/2007/11/07/iis7-in-the-community-11-7-2007.aspx

