このセクションでは、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 には、次のように記述されたセクションがあります。
これを "Group nogroup" (や "Group daemon")等に変更しないと、 PHP はファイルをオープンすることができません。User nobody Group "#-1"
注意:
--with-apxs=/path/to/apxs オプションを 指定する場合には実際にシステムにインストールされている apxs を指定してください。 Apache のソースディレクトリ内にある apxs を指定してはいけません。