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-7CGI版PHPとApache 2.0

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

注意 PHP 4.3.0からCGIバイナリのファイル名がphp-cgi.exeに 変更されています。ApacheのActionディレクティブを記述する際には ご注意ください。

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を インストールしたパスに置き換えてください。

警告

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