locked
[HOW TO] IIS7.0でFastCGI+PHP5環境を作ってみる

    質問

  • // はじめに

    IISPHP環境として動作させる上でスレッドセーフで無いライブラリの利用にISAPI拡張が適していないなど多くの要望がIISの開発チームには寄せられていたといいます。IISチームはこの点を重大に捉え、PHPをご利用になっている方々向けの支援を強化するためにZend Technologies 社との協業をしたり、IISに手を入れたりと色々と動きだしました。

     

    // PHP動作環境の構築

    IIS.NETにその例が載っていますが、日本語で実際に手順を確認してみましょう。IIS7にはVista2003の環境が考えられますが、ここではVistaでの方法を書きます。XP2008用はもう一つのフォーラムで取り上げることにします。

    また、ここでは 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,phpt

    4.    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.php

     

    Windows Server 2008での注意点は、

    -       Beta 3 以降 FastCGI CGIの機能をインストールすると一緒にもう入ってます。

    -       fcgisetup ではなく、手で設定します。今度 それも書きます。
    単純にハンドラマッピングの機能でモジュールと拡張子phpを紐づけるだけです。
    *.php
    、モジュールにFastCGIを選ぶ -> CGIを選ぶと従来のCGI動作になりますので性能比較なんかしてみるといいでしょう。

     

    実際のサイトを設定するにはindex.php を既定のドキュメントに追加するとか色々あると思いますが、その辺も含めてまた書きます。

    2007年9月8日 10:22
    モデレータ

回答

  • 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

    2007年11月12日 18:03
    モデレータ