## Apache 1.3.x (Unix システム用)

このセクションでは、PHP を Unix プラットフォームの Apache 1.3.x にインストールする際の 手引きと注意事項について説明します。Apache 2 に関する手引きと注意 は 別のセクションにあります。

以下の説明では、バージョン番号が意図的に省略されています。 'xxx' の部分を使用するファイルに対応する番号に置き換えてください。 また、手順 10 で configure に与える引数は、 configure のすべてのオプション から選択できます。

例1 PHP インストール 手順 (Apache 共有モジュール版)

    1.  gunzip apache_xxx.tar.gz
    2.  tar -xvf apache_xxx.tar
    3.  gunzip php-xxx.tar.gz
    4.  tar -xvf php-xxx.tar
    5.  cd apache_xxx
    6.  ./configure --prefix=/www --enable-module=so
    7.  make
    8.  make install
    9.  cd ../php-xxx

    10. PHP の configure を行います。ここでは、様々なオプションを指定して、
        特定の拡張モジュールを有効にするといった、カスタマイズを行います。
        指定可能なオプションの一覧は、./configure --help を実行すると得られ
        ます。以下に、簡単な設定例を示します。Apache 1 と MySQL のサポートを
        有効にする例です。apxs のパスは、Apache のインストールパスによって
        異なる場合があります。

          ./configure --with-mysql --with-apxs=/www/bin/apxs

    11. make
    12. make install

        configure オプションを変更して再インストールする場合は、最後の 3 つ
        の手順を繰り返します。共有モジュールとしてコンパイルされた PHP を
        有効にするには Apache を再起動するだけです。Apache の再コンパイルは
        必要ありません。

        特に指定がない限り、'make install' は、PEAR, phpize のような様々な
        関連ツール、CLI 版 PHP などもインストールすることに注意してください。

    13. php.ini ファイルをセットアップ

          cp php.ini-development /usr/local/lib/php.ini

        PHP の実行時設定を変更するには、.ini ファイルを編集します。
        このファイルを他の場所に置きたい場合は、手順 10 で、
        オプション --with-config-file-path=/path を使用します。

        php.ini-development ではなく、php.ini-production を使用する場合は、PHP の
        動作が変化しますので、ファイル中に記載されている変更点の一覧を確認する
        ようにしてください。

    14. httpd.conf を編集し、PHP の共有モジュールをロードするよう設定します。
        LoadModule 命令の右側に記述するパスは、システムの PHP 共有モジュール
        を指している必要があります。上記の make install により既にこの設定は
        追加されている場合もありますが、確認が必要です。

          LoadModule php5_module libexec/libphp5.so

    15. httpd.conf の AddModule セクションに以下を追加します。
        ClearModuleList の下あたりに追加してください。

          AddModule mod_php5.c

    16. Apache が特定の拡張子のファイルを PHP としてパースするよう（httpd.conf
        を編集して）設定します。例えば、Apache が拡張子 .php のファイルを PHP
        としてパースするように設定します。複数の拡張子も、空白で区切って記述する
        だけで PHP としてパースさせることができます。以下の例は .php と .phtml
        とを指定した場合です。

          AddType application/x-httpd-php .php .phtml

        PHP のソースをハイライト表示させるために、拡張子 .phps を設定することも
        よく行われます。

          AddType application/x-httpd-php-source .phps

    17. Apache サーバーを、通常の手順通り、起動させます（HUP または USR1
        シグナルを 使用してリロードするのではなく、サーバーを停止させてから
        再起動する必要があります）。

PHP を静的オブジェクトとしてインストールすることも可能です。

例2 PHP インストール手順 (Apache 静的モジュール)

    1.  gunzip -c apache_1.3.x.tar.gz | tar xf -
    2.  cd apache_1.3.x
    3.  ./configure
    4.  cd ..

    5.  gunzip -c php-5.x.y.tar.gz | tar xf -
    6.  cd php-5.x.y
    7.  ./configure --with-mysql --with-apache=../apache_1.3.x
    8.  make
    9.  make install

    10. cd ../apache_1.3.x

    11. ./configure --prefix=/www --activate-module=src/modules/php5/libphp5.a

        (上の行は間違いではありません。この段階で libphp5.a は存在していませんが
        この時点での存在は必須ではなく、後に作成されます。)

    12. make

        (httpd バイナリが作成され、Apache バイナリディレクトリにコピーすることが
        できます。最初のインストールの場合は、この後 "make install" を行います。)

    13. cd ../php-5.x.y
    14. cp php.ini-development /usr/local/lib/php.ini

    15. /usr/local/lib/php.ini を編集すると、PHP の実行時設定を変更できます。
        httpd.conf もしくは srm.conf ファイルを編集し、以下を追記します。
        AddType application/x-httpd-php .php

インストールされている Apache や UNIX の種類によりますが、サーバーの停止・再起動の 方法はいくつもあります。いろいろな Apache/UNIX の組合せを想定して、 サーバーを再起動する典型的な方法を以下に示します。 /path/to/ を使用するシステムのアプリケーション へのパスに置き換えてください。

例3 Apache を再起動するためのコマンドの例

    1. Linux および System V 系
    /etc/rc.d/init.d/httpd restart

    2. apachectl スクリプトを使用する方法
    /path/to/apachectl stop
    /path/to/apachectl start

    3. (OpenSSL を使用している場合) httpdctl および httpsdctl を使用する方法
    /path/to/httpsdctl stop
    /path/to/httpsdctl start

    4. mod_ssl や他の SSL サーバーを使用している場合、手動で stop や start する
    /path/to/apachectl stop
    /path/to/apachectl startssl

apachectl および http(s)dctl の実行ファイルの位置は、システムにより 異なります。システムが locate、 whereis または which コマンドを サポートしているなら、これらサーバー制御用プログラムを見つけるために使用すると 便利でしょう。

PHP を Apache 用にコンパイルするには、いくつかの方法があります。以下に例を示します。

    ./configure --with-apxs --with-pgsql

この例では、Apache がロードする共有モジュールのライブラリ libphp5.so が作成されます。この共有ライブラリの読み込みは、Apache の設定ファイル httpd.conf の LoadModule の行にて設定します。また、このライブラリには、 PostgreSQL サポートが埋め込まれます。

    ./configure --with-apxs --with-pgsql=shared

この例でも Apache 用 libphp5.so 共有ライブラリ が作成されます。加えて、（PHP 拡張モジュールの）共有ライブラリ pgsql.so も作成されます。この共有ライブラリ は、PHP 設定ファイル php.ini の extension ディレクティブにより、 もしくは PHP スクリプト内で明示的に dl() 関数により ロードされます。

    ./configure --with-apache=/path/to/apache_source --with-pgsql

この例では、libmodphp5.a ライブラリと mod_php5.c およびいくつかの付属ファイルが 作成され、Apache のソースツリーのディレクトリ src/modules/php5 にコピーされます。続いて、 --activate-module=src/modules/php5/libphp5.a と指定して Apache をコンパイルしてください。Apache のビルドシステムにより、libphp5.a が作成され、 httpd バイナリに静的にリンクされます。 PostgreSQL サポートはこの httpd バイナリに 直接埋め込まれるため、最終的な結果としては、Apache 全体と PHP 全体を含む 単一の httpd バイナリが出来上がります。

    ./configure --with-apache=/path/to/apache_source --with-pgsql=shared

この例は、上と同様ですが、最終的な httpd バイナリに PostgreSQL サポートは直接埋め込まれません。共有ライブラリ pgsql.so が作成され、PHP 設定ファイル php.ini、もしくは dl() 関数により明示的に PHP にロードすることができます。

PHP のビルド方法を選択する際には、各方法の利点と欠点を考慮する必要 があります。共有モジュールのオブジェクトとしてビルドすると、Apache とは別に コンパイルすることができ、PHP を追加または変更する際に全体を 再コンパイルする必要がありません。PHP を Apache に（静的に）組み込むと、 PHP はより高速にロード・実行されます。詳細な情報については、 Apache の Web ページ 「» 動的共有オブジェクト (DSO) サポート」 を参照してください。

> 注意:

> Apache のデフォルトの httpd.conf には、次のように記述されたセクションがあります。

>     User nobody
>     Group "#-1"

> これを "Group nogroup" （や "Group daemon"）等に変更しないと、 PHP はファイルをオープンすることができません。

> 注意:

> --with-apxs=/path/to/apxs オプションを 指定する場合には実際にシステムにインストールされている apxs を指定してください。 Apache のソースディレクトリ内にある apxs を指定してはいけません。