このセクションでは、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 により既にこの設定は
追加されている場合もありますが、確認が必要です。
PHP 4 の場合:
LoadModule php4_module libexec/libphp4.so
PHP 5 の場合:
LoadModule php5_module libexec/libphp5.so
15. httpd.conf の AddModule セクションに以下を追加します。
ClearModuleList の下あたりに追加してください。
PHP 4 の場合:
AddModule mod_php4.c
PHP 5 の場合:
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
注意: PHP 4 については、php-5 を php-4 へ、 php5 を php4 へ置き換えてください。
インストールされている 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 (あるいは PHP 4 では libphp4.so) が作成されます。この共有ライブラリの読み込みは、Apache の設定ファイル httpd.conf の LoadModule の行にて設定します。また、このライブラリには、 PostgreSQL サポートが埋め込まれます。
./configure --with-apxs --with-pgsql=shared
この例でも Apache 用 libphp4.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 バイナリに静的にリンクされます (PHP 4 に対しては、php5 を php4 へ 置き換えてください)。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 を指定してはいけません。