Apache 2.0サーバ

本節には、UnixもしくはWindowsプラットフォームで Apache 2.0にPHPをインストールするための説明や ヒントがあります。

警告

Apache 2.0とPHPの組み合わせを(Unix、Windows どちらのプラットフォームでも)実運用環境で使用しないでください。

Apache 2.0サーバに関する基本的な知識を得るために、Apache Documentationを一読することを お勧めします。

PHPとApache 2.0の互換性

PHP 4.3.0がリリースされるまでの間は、Apache 2.0の最新バージョンと 以下のいずれかのリリースとの組み合わせで使用することをお勧めします。

上記のPHPバージョンはApache 2.0.40以降と 互換性があります。

注意: Apache 2.0 SAPIサポートはPHP 4.2.0から開始されて おり、PHP 4.2.3はApache 2.0.39との組み合わせで動作することが 確認されています。ただし他のApache 2バージョンとの組み合わせでの 動作は保証されていません。PHP 4.2.3とApache 2.0.39との組み合わせに ついてもお勧めはしません。

上記で触れている全てのPHPバージョンはApache 1.3.x では問題なく動作します。

Linux上でのPHPとApache 2

最新バージョンのApache 2.0を ダウンロードして上述のいずれかのバージョンのPHPを用意してください。 このクイックガイドはApache 2.0でPHPを動作させるための 基本的な部分しかカバーしていません。更なる情報についてはApache Documentationをご覧ください。 情報が古く不正確になってしまうため、ここには詳細なバージョン番号は 記述されていません。'NN'という文字列をご使用のバージョンに適宜置き換えて ください。

例 3-6. インストールガイド(Apache 2 Shared Module Version)

1.  gzip -d httpd-2_0_NN.tar.gz
2.  tar xvf httpd-2_0_NN.tar
3.  gunzip php-NN.tar.gz
4.  tar -xvf php-NN.tar
5.  cd httpd-2_0_NN
6.  ./configure --enable-so
7.  make
8.  make install

    この状態でApache 2.0.NNが/usr/local/apache2で使用可能になっており、
    モジュールのダイナミックロードと標準MPMのpreforkがサポートされている
    はずです。正しくインストールされたかどうかをテストするために
    Apacheサーバを起動するには:
    /usr/local/apache2/bin/apachectl start
    とします。PHPの設定を開始するためにサーバを停止するには:
    /usr/local/apache2/bin/apachectl stop
    とします。

9.  cd ../php4-NN
10. ./configure --with-apxs2=/usr/local/apache2/bin/apxs
11. make
12. make install
13. cp php.ini-dist /usr/local/lib/php.ini

    php.iniファイルを編集してPHPオプションを適宜設定して
    ください。もしphp.iniを他の場所で使用したい場合は
    --with-config-file-path=/pathをステップ10で指定して
    ください。

14. httpd.confを編集して以下の行が記述されていることを確認して
    ください。
  
   LoadModule php4_module modules/libphp4.so
   AddType application/x-httpd-php .php

  拡張子は自由に設定することが出来ます。.phpというのは私たちが
  挙げた例の一つ過ぎません。
 
  LoadModule文の右項に記述するパスにあなたのシステム上でのPHPモジュールの
  位置を記述します。これまでのステップ通り実行すれば上記の値のままで
  問題ないではずです。

15. Apacheサーバを起動してください:
   /usr/local/apache2/bin/apachectl start

上記の手順で、PHPSAPIモジュールサポートを有効にして Apache 2.0を動作させることが出来ます。もちろん、Apacheと PHP共にもっと多くのconfigureオプションを指定することが出来ます。 詳しい情報を得るにはそれぞれのソースツリーディレクトリで./configure --helpを実行してください。マルチスレッド版のApache 2.0を 構築する場合は、標準MPM-Moduleであるpreforkworkerもしくはperchildで 上書きする必要があります。このためには、上記のステップ6で--with-mpm=workerもしくは--with-mpm=perchildを指定します。マルチ スレッド版については、その動作に関して十分注意してください。 詳細はApacheドキュメントのMPM-Modules を参照してください。

注意: マルチスレッド版のApacheを構築する場合は、あなたのシステムがスレッドを サポートしている必要があります。また、この場合PHPを 実験的なステータスにあるZend Thread Safety(ZTS)で構築することを意味します。 従って全ての拡張モジュールを使用できるわけではありません。 preforkMPM-Moduleでの構築をお勧めします。

Windows上でのPHPとApache 2.0

まずWindows特有の事柄を 読むことをお勧めします。

警告

Apache 2.0はWindows NT 4.0, Windows 2000, Windows XPでの動作を 想定してデザインされており、現時点ではWindows 9xのサポートは 不完全です。これらのプラットフォームでの動作は保証されません。

最新バージョンのApache 2.0をダウンロードして上記のいずれかのPHPのバージョンを 用意します。まずマニュアル インストールの手順の手順に従ってから、PHPと Apacheの統合を開始します。

Windows上のApache 2.0でPHPを動作させるには2つの 方法があります。一つはCGIバイナリを使用する方法、もう一つはApache モジュールDLLを使用する方法です。前者の場合は一旦Apacheサーバを 停止してhttpd.confPHPと 動作するように編集します。

CGIバイナリを有効にするにはApacheの httpd.confに以下の3行を追加します。

例 3-7. CGI版PHPとApache 2.0

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php-cgi.exe"

PHPをApache 2.0のモジュールとして使用したい場合は、 まずphp4ts.dllwinnt/system32 (Windows NT/2000)もしくはwindows/system32(Windows XP)に移動します(既存のファイルは全て上書きしてください)。次に PHPモジュールを有効にするため、Apacheの httpd.confに以下の2行を追加します。

例 3-8. モジュール版PHPとApache 2.0

LoadModule php4_module c:/php/sapi/php4apache2.dll
AddType application/x-httpd-php .php

注意: c:/php/はあなたが実際にPHPを インストールしたパスに置き換えてください。 LoadModuleディレクティブにはphp4apche.dll ではなくphp4apache2.dll を使用するように注意してください。前者はApache1.3.x用です。

警告

インストール時に異なったPHPバージョンのDLLを 混同しないように気をつけてください。