Unixシステム上のApache 2.0

本節には、PHPをUnixシステム上のApache 2.0にインストールする際の注意やヒントが含まれています。

警告

Unix上でもWindows上でも Apache 2.0.xとPHPの組合せを実運用環境で使用するべきではありません。その理由については、 FAQエントリも参照して下さい。

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

PHPおよびApache 2.0.x の互換性に関する注意: PHPの以下のバージョンは、Apache 2.0.xの最新版での動作が確認されています。

これらのバージョンのPHPは、Apache 2.0.40およびそれ以降と互換性があります。

Apache 2.0 SAPIのサポートはPHP 4.2.0で開始されました。 PHP 4.2.3 は Apache 2.0.39 で動作します。 PHP 4.2.3 を Apacheの他のバージョンと 組合せて使用しないで下さい。 推奨される設定は、PHP 4.3.0またはそれ以降を最新版のApache2と組み合わせて使用することです。

ここで言及したバージョンのPHPは、Apache 1.3.xでも動作します。

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

例 4-4. インストール手順 (Apache 2 共有モジュール版)

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 ../php-NN

10. ここでPHPのconfigureを行います。
   This is where you customize your PHP
   with various options, like which extensions will be enabled.  Do a
   ./configure --help for a list of available options.  In our example
   we'll do a simple configure with Apache 2 and MySQL support.  Your
   path to apxs may differ, in fact, the binary may even be named apxs2 on
    your system. 
   
   ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql

11. make

12. make install

   インストール後に設定オプションを変更する場合、繰り返す必要があるのは、最後の3つの手順だけです。
   この設定を反映するためにするべきことは、Apacheを再起動することだけです。
   再コンパイルは不用です。
   
                
   Note that unless told otherwise, 'make install' will also install PEAR,
   various PHP tools such as phpize, install the PHP CLI, and more.
    
13. Setup your php.ini 
    
   cp php.ini-dist /usr/local/lib/php.ini
          
   You may edit your .ini file to set PHP options.  If you prefer having
   php.ini in another location, use --with-config-file-path=/some/path in
   step 10.
   
   If you instead choose php.ini-recommended, be certain to read the list
    of changes within, as they affect how PHP behaves.

14. Edit your httpd.conf to load the PHP module.  The path on the right hand
   side of the LoadModule statement must point to the path of the PHP
   module on your system.  The make install from above may have already
   added this for you, but be sure to check.
   
   For PHP 4:
   
   LoadModule php4_module libexec/libphp4.so
   
   For PHP 5:
   
   LoadModule php5_module libexec/libphp5.so
   
15. Tell Apache to parse certain extensions as PHP.  For example,
    let's have Apache parse the .php extension as PHP.  You could
    have any extension(s) parse as PHP by simply adding more, with
    each separated by a space.  We'll add .phtml to demonstrate.
            
   AddType application/x-httpd-php .php .phtml
   
   It's also common to setup the .phps extension to show highlighted PHP
   source, this can be done with:
   
   AddType application/x-httpd-php-source .phps
   
16. Use your normal procedure for starting the Apache server, e.g.:
   
   /usr/local/apache2/bin/apachectl start

上記の手順で、SAPIモジュールサポートとしてPHPを 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 を参照してください。

注意: コンテンツネゴシエーションを使用したい場合には、 関連するFAQを参照して下さい。

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