【IIS7】 [HOW TO] IIS7.0でFastCGI+PHP5環境を作ってみる
// はじめに
IISはPHP環境として動作させる上でスレッドセーフで無いライブラリの利用にISAPI拡張が適していないなど多くの要望がIISの開発チームには寄せられていたといいます。IISチームはこの点を重大に捉え、PHPをご利用になっている方々向けの支援を強化するためにZend Technologies 社との協業をしたり、IISに手を入れたりと色々と動きだしました。
// PHP動作環境の構築
IIS.NETにその例が載っていますが、日本語で実際に手順を確認してみましょう。IIS7にはVistaと2008の環境が考えられますが、ここではVistaでの方法を書きます。XPや2008用はもう一つのフォーラムで取り上げることにします。
また、ここでは www.php.net で提供しているPHPバイナリを利用します。Zend社のCoreはインストーラもあり、さらに簡単にできますが、敢えてここではIIS開発チームがやっている通りの方法で書いてみます。
1. IIS7を用意する
インストールはインストール方法のHOW TOをご覧ください。
https://localhost にアクセスしてきちんとIIS7が動作していることを確認します。
2. FastCGIを入手する
2008は標準で入っているのでこの手順が要りませんが、Vistaはインストールが必要です。
https://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,phpt
4. PHPバイナリを入手する
https://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. 実際にアクセスしてみる
https://localhost/gogo.php
Windows Server 2008での注意点は、
- Beta 3 以降 FastCGI はCGIの機能をインストールすると一緒にもう入ってます。
- fcgisetup ではなく、手で設定します。今度 それも書きます。
単純にハンドラマッピングの機能でモジュールと拡張子phpを紐づけるだけです。
*.php、モジュールにFastCGIを選ぶ -> CGIを選ぶと従来のCGI動作になりますので性能比較なんかしてみるといいでしょう。
実際のサイトを設定するにはindex.php を既定のドキュメントに追加するとか色々あると思いますが、その辺も含めてまた書きます。