UNIX システムにおけるインストール

本節においては、PHP のインストールと設定に関する手引きを示します。

事前に必要な知識とソフトウエアを以下に示します。

UNIXプラットフォームでPHPをコンパイルおよび設定する方法は複数あり ます。設定処理は、configureスクリプトでコマン ドラインのオプションを使用することにより制御されます。このページは、 最も一般的なオプションの使用法を概説するものですが、この他にも多く の設定方法があります。詳細については、configureオプションの完全なリスト を参照下さい。

Apacheモジュール

PHPは、Apacheモジュールとしてコンパイルする方法には異なった複数の 方法があります。まず始めに簡単なインストール手順を示します。続い て、特定の目的に即した様々な例を解説付きで示します。

以下の手順の8行目でconfigureに追加する引数を configureのオプションの完全なリスト から選択することが可能です。

例 2-1. 簡単なインストール手順 (Apache モジュール版)


1.  gunzip apache_1.3.x.tar.gz
2.  tar xvf apache_1.3.x.tar
3.  gunzip php-x.x.x.tar.gz
4.  tar xvf php-x.x.x.tar
5.  cd apache_1.3.x
6.  ./configure --prefix=/www
7.  cd ../php-x.x.x
8.  ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars
9.  make
10. make install
11. cd ../apache_1.3.x
12. PHP 3の場合: ./configure --activate-module=src/modules/php3/libphp3.a
    PHP 4の場合: ./configure --activate-module=src/modules/php4/libphp4.a
13. make
14. make install

  このステップの代わりに、httpd バイナリを現在のバイナリに上書きする方法を
  望まれるかもしれません。この場合、サーバーをシャットダウンすることを忘れない
  ようにしてください。
 
15. cd ../php-x.x.x
16. PHP 3の場合: cp php3.ini-dist /usr/local/lib/php3.ini
    PHP 4の場合: cp php.ini-dist /usr/local/lib/php.ini

  PHPオプションをセットするために .ini ファイルを編集すること
  ができます。
  このファイルを別の場所に置きたい場合、ステップ8で
  --with-config-file-path=/pathオプションを使用して下さい。
 
17. httpd.conf または srm.conf ファイルを編集し、次の文を加えてください。
       
     PHP 3の場合:   AddType application/x-httpd-php3 .php3
     PHP 4の場合:   AddType application/x-httpd-php .php
  
  ここで設定する拡張子は、任意です。.php は、単に推奨されるというだけ
  のものです。.html を使うことさえ可能です。

18. Apache サーバーを起動する通常の手順を行ってください。
      (HUPまたはUSR1シグナルによりサーバーをリロードするのではなく、
      サーバーをストップしリスタートする必要があります。)
     


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

これにより、共有ライブラリ libphp4.soが作成 されます。このライブラリは、Apacheの設定ファイル httpd.confのLoadModuleによりApacheにロードさ れます。PostgreSQLサポートは、このライブラリ libphp4.soに組み込まれます。


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

これによりApacheの共有ライブラリlibphp4.soが 再度作成されます。また、共有ライブラリ pgsql.soも作成されます。このライブラリは、 php.iniの extension 命令またはスクリプトの中 で関数dl()を明示的に使用することによりロードす ることが可能です。


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

これにより、ライブラリlibmodphp4.amod_php4.cおよびいくつかの関連ファイルが Apacheソースツリーのsrc/modules/php4ディレクト リにコピーされます。この後、Apacheを --activate-module=src/modules/php4/libphp4.a を指定してコンパイルすると、Apacheは libphp4.ahttpdバイナ リに静的にリンクします。PostgreSQLサポートは、 httpdバイナリに直接インクルードされ、 最終的な結果としては、Apache全体とPHP全体を含む単一の httpdバイナリとなります。


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

上と同じですが、最終的なhttpdに PostgreSQLサポートを直接インクルードする代わりに、共有ライブラリ pgsql.soをファイル php.iniまたはdl()により直 接的にPHPにロードすることが可能です。

異なったPHPの構築法を選択する際、各方法の利点と欠点を考慮する必要 があります。共有オブジェクトとして構築する場合、Apacheと分割して コンパイルすることが可能で、PHPを追加または変更する際に全体を再コ ンパイルする必要がありません。PHPをApacheに(静的に)組み込む場合に は、PHPはより高速にロード/実行することが可能です。詳細な情報につ いては、ApacheのDSOサポートのWebペー ジを参照下さい。

fhttpd モジュール

PHPをfhttpdモジュールとして作成するには、 "Build as an fhttpd module?" に対して、"yes" と答えてください。 (configure の オプション --with-fhttpd=DIR) そして、fhttpd ソースのベースディレクトリを指定してください。 デフォルトディレクトリは、 /usr/local/src/fhttpdです。 fhttpd を使用している場合には、PHP をモジュールとして作成した方が、 より優れた性能、より高度な制御/遠隔実行能力を得ることができます。

他のWebサーバー

PHPは、多くのWebサーバーをサポートするように構築することが可能で す。サーバーに関係する設定オプションの完全なリストについては、 サーバーに関係した オプション を参照下さい。

CGI/コマンドライン バージョン

デフォルトで、PHPはCGIプログラムとして作成されます。これにより、 コマンドラインインタプリタが作成され、CGI処理またはWeb以外のPHPス クリプト実行に使用することが可能です。PHPモジュールをサポートする Webサーバーを実行する場合、一般に性能面からモジュールの方を選択す るべきです。しかし、CGIバージョンでは、Apacheユーザーが異なった PHP対応ページを異なったユーザーIDで実行することが可能です。PHPを CGIとして実行しようとする場合には、セキュ リティの章を一読するようにしてください。

データベースサポートオプション

PHPは、以下に示す多くのデータベース(とODBC)をネーティブでサポート しています。コンパイル時に様々なデータベースのサポートを有効にす るために、configureスクリプトに指定するオプ ションが指定されています。詳細については、データベースに関係する全オ プションのリストを参照下さい。

configureへ指定可能なオプションの完全なリス トについては、設定オプションの 完全なリストを参照下さい。

構築

PHPのconfigureを実行した後は、既にCGI実行ファイルまたはPHPライブラリ を構築する準備ができています。コマンドmake に は注意して下さい。構築に失敗し、原因が不明な場合、 問題の節を参照下さい。

試験

PHPをCGIプログラムとして実行した場合、make testと入力することにより構築したものをテストすることが 可能です。構築したものをテストすることは良い考えです。これにより、 早期に使用する環境でのPHPの問題に対して後でその問題と格闘するので はなく、早期に見付けることが可能となります。

ベンチマーク

PHPをCGIプログラムとして構築した場合には、 make benchとすることにより、ベンチマークを実行 することが可能です。セーフモードがデフォルトでオンの場合、30秒以 上かかるベンチマークは完了させることができません。これは、セーフ モードでは、set_time_limit() を使用することが できないためです。スクリプト用にこの時間を設定するには、設定 max_execution_time を使用して設定して下さい。make bench は、設定ファイルを無視します。

注意: make bench は、PHP 3 でのみ利用可能です。