本節においては、PHP のインストールと設定に関する手引きを示します。 事前に必要な知識とソフトウエアを以下に示します。
UNIX に関する基本的な知識("make" およびC コンパイラを使える程度)
ANSI C コンパイラ
Web サーバー
1. gunzip apache_1.3.x.tar.gz 2. tar xvf apache_1.3.x.tar 3. gunzip php-3.0.x.tar.gz 4. tar xvf php-3.0.x.tar 5. cd apache_1.3.x 6. ./configure --prefix=/www 7. cd ../php-3.0.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. ./configure --prefix=/www --activate-module=src/modules/php3/libphp3.a 13. make 14. make install このステップの代わりに、httpd バイナリを現在のバイナリに上書きする方法を 望まれるかもしれません。この場合、サーバーをシャットダウンすることを忘れない ようにしてください。 15. cd ../php-3.0.x 16. cp php3.ini-dist /usr/local/lib/php3.ini PHP オプションをセットするために /usr/local/lib/php3.ini ファイルを編集すること ができます。 このファイルを別の場所に置きたい場合、ステップ 8 で --with-config-file-path=/path オプションを使用して下さい。 17. httpd.conf または srm.conf ファイルを編集し、次の文を加えてください。 AddType application/x-httpd-php3 .php3 ここで設定する拡張子は、任意です。.php3 は、単に推奨されるというだけのものです。 18. Apache サーバーを起動する通常の手順を行ってください。 ( HUP または USR1 シグナルによりサーバーをリロードするのではなっく、 サーバーをストップしリスタートする必要があります。)
PHP を設定する方法は、2種類あります。
PHP に付属する "setup" スクリプトを使用。このスクリプトは、 (PHP/FI 2.0 の "install" スクリプトとほとんど同様の) 一連の質問を行い、最後に "configure" を実行します。 このスクリプトを実行するには、./setup と入力します。
このスクリプトは、"do-conf" というファイルを生成します。 このファイルには、configure に渡されるオプションが書かれています。 オプションを少しだけ変更する場合には、setup を再実行せずに このファイルを手で修正することが可能です。その後、 新しいオプションを用いて configure を実行するために ./do-conf と入力します。
マニュアルで configure を実行。オプションの内容を知るには、 ./configure --help と入力してください。
その他の設定オプションについて詳細を以下に示します。
PHP を Apache モジュールとして作成するには、"Build as an Apache module?" に "yes" と答えて下さい。 (configure のオプション では、 --with-apache= DIR) そして、Apache のベースディレクトリを指定してください。 Apache 配布ファイルを /usr/local/www/apache_1.2.4 に展開している場合には、 ここが Apache 配布ベースディレクトリです。 デフォルトのディレクトリは、/usr/local/etc/httpd です。
PHP を fhttpd モジュールとして作成するには、 "Build as an fhttpd module?" に対して、"yes" と答えてください。 (configure のオプションでは --with-fhttpd=DIR ) そして、fhttpd ソースのベースディレクトリを指定してください。 デフォルトディレクトリは、 /usr/local/src/fhttpd です。 fhttpd を使用している場合には、PHP をモジュールとして作成した方が、 より優れた性能、より高度な制御・遠隔実行能力を得ることができます。
デフォルトでは、PHP は CGI プログラムとして作成されます。 PHP モジュールをサポートする Web サーバーを実行する場合、 一般に性能面からモジュールの方が選択されるでしょう。 しかし、CGI バージョンでは、Apache ユーザーが複数のユーザーIDで 複数の PHP 用ページを実行することが可能です。 PHP を CGI として実行しようとする場合には、 セキュリティの章 を一読するようにしてください。
PHP は、以下に示す多くのデータベース(とODBC)をネーティブでサポートしています。
--with-adabas=DIR
Adabas D サポートを有効にしてコンパイルします。パラメータは、 Adabas D インストールディレクトリです。デフォルトは、 /usr/local/adabasdです。
--with-msql=DIR
mSQL サポートを有効にします。 このオプションへのパラメータは、mSQL をインストールした ディレクトリです。デフォルトでは、/usr/local/Hughes です。 このデフォルト値は、mSQL 2.0 のデフォルトディレクトリです。 configure は、自動的に実行中の mSQL のバージョンを 検出します。PHP は、1.0 と 2.0 の両方をサポートします。しかし、 PHP を mSQL 1.0 でコンパイルした場合には、mSQL 1.0 データベース のみにアクセスすることが可能です。逆の場合も同様です。
--with-mysql=DIR
MySQL サポートを有効にします。 このオプションへのパラメータは、MySQL をインストールした ディレクトリで、デフォルトでは、 /usr/local に設定されています。 これは、MySQL 配布版におけるデフォルトのインストールディレクトリ です。
設定ファイル中の MySQL Configuration命令も 参照してください。
--with-iodbc=DIR
iODBC サポートを有効にします。この機能は、最初は iODBC ドライバ マネージャ用に開発されました。 iODBC ドライバは、多くの UNIX 上で 動作する自由に再配布可能な ODBC ドライバマネージャです。 このオプションへのパラメータは、iODBC をインストールした ディレクトリで、デフォルトでは、 /usr/local に設定されています。
FreeODBC ホームページ または iODBC ホームページ を参照下さい。
--with-openlink=DIR
OpenLink ODBC サポートを導入します。このオプションに対するパラメータは、 OpenLink ODBC のインストールディレクトリであり、デフォルトは /usr/local/openlink になっています。
--with-oracle=DIR
Oracle サポートを有効にします。この機能は既にテストが行われており、 少なくとも Oracle 7.0 版から 7.3 版までは動作するはずです。 パラメータは、ORACLE_HOME ディレクトリです。 Oracle 環境が設定されている場合には、このパラメータを指定する 必要はありません。
--with-pgsql=DIR
PostgreSQL サポートを有効にします。パラメータは、PostgreSQL をインストールしたディレクトリです。デフォルトでは、/usr/local/pgsql に設定されています。
設定ファイル中の Postgres Configuration 命令も参照下さい。
--with-solid=DIR
Solid サポートを有効にします。パラメータは、Solid をインストールした ディレクトリです。デフォルトでは、/usr/local/solidに設定されています。
--with-sybase=DIR
Sybase サポートを有効にします。パラメータは、Sybase をインストール したディレクトリです。デフォルトでは、/home/sybase に設定されています。
設定ファイル中の Sybase Configuration 命令も参照下さい。
--with-sybase-ct=DIR
Sybase-CT サポートを有効にします。パラメータは、Sybase-CT の インストールディレクトリです。デフォルトでは、/home/sybase に設定されています。
設定ファイル 中の Sybase-CT Configuration 命令も参照下さい。
--with-velocis=DIR
Velocis サポートを有効にします。パラメータは、Velocis の インストールディレクトリです。デフォルトでは、/usr/local/velocis に設定されています。
--with-custom-odbc=DIR
任意のカスタムODBCライブラリのサポートを有効にします。 パラメータはベースディレクトリで、デフォルトでは、/usr/local に設定されています。
このオプションは、 configure スクリプトを実行した際に、CUSTOM_ODBC_LIBS を 定義済みであることが前提になっています。 また、有効な odbc.h ヘッダファイルをインクルードパスのどこかに 置いておく必要があります。 これがない場合には作成し、そこから必要なヘッダを インクルードしてください。 特にマルチプラットフォームである場合には、 ヘッダ中で外部定義シンボルを必要とするかもしれません。 これは、CFLAGS で定義します。
例えば、QNX 上で Sybase SQL Anywhere を使用するには次のようにします。 CFLAGS=-DODBC_QNX LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc" ./configure --with-custom-odbc=/usr/lib/sqlany50
--disable-unified-odbc
Unified ODBC モジュールを無効にします。このモジュールは、 Solid や Adabas D のような ODBC ベースのインターフェースを有する全てのデータベース において共通に使用可能なインターフェースです。 このモジュールは、通常の ODBC ライブラリ用にも動作します。 このモジュールは、iODBC,Solid,Adabas D,Sybase SQL Anywhere で既にテストされています。 これらのモジュールまたは Velocis モジュールの内の一つ(一つだけ) を有効にするか、カスタムODBCライブラリを指定する必要があります。 このオプションは、以下のオプションの一つが使用されている場合にのみ 使用可能です。 --with-iodbc, --with-solid, --with-adabas, --with-velocis, --with-custom-odbc
設定ファイル 中の Unified ODBC 設定命令 も参照ください。
--with-ldap=DIR
LDAP (Lightweight Directory Access Protocol) サポートを有効にします。 パラメータは、LDAP のインストールディレクトリで、 デフォルトでは、/usr/local/ldap に設定されています。
--enable-i18n
国際化関数のサポートを有効にします。 国際化サポート関数により文字コードの相互変換やマルチバイト検索を始めとする 日本語を使用した処理を行う際に便利な機能が使用可能となります。 国際化関数は、PHP3国際化チームにより現在、βテスト中です。
この関数を使用するためには、国際化パッチを次の場所から入手する必要が あります。 http://php.jpnnet.com/
--enable-mbregex
マルチバイト文字対応の正規表現関数を使用可能にします。
この関数を使用するためには、国際化パッチを次の場所から入手する必要が あります。 http://php.jpnnet.com/
--with-mcrypt
mcryptライブラリのサポート機能を有効にします。 詳細は mcrypt ドキュメント を参照下さい。 オプションの DIR 引数を使用した場合、 DIR/include で mcrypt.h を探します。
--enable-sysvsem
(多くの UNIX 互換 OS でサポートされている) Sys V セマフォ用サポートを導入します。 更に詳細な情報については、 セマフォと共有メモリに関するドキュメント を参照下さい。
--enable-sysvshm
(多くの UNIX 互換 OS でサポートされている) Sys V 共有メモリサポートを導入します。 更に詳細な情報については、 セマフォと共有メモリに関するドキュメント を参照下さい。
--with-xml
James Clark のexpat ライブラリ を 使用してテスト版の XML パーサーのサポートを導入します。 詳細な情報については、 XML 関数リファレンス を 参照下さい。
--with-system-regex
付属の正規表現ライブラリではなく、システムの正規表現ライブラリを 使用します。PHPをサーバーモジュールとして構築する場合には、 PHP を構築する時とサーバーをリンクする時とで同じ ライブラリを使用する必要があります。 システムのライブラリが有用な特別な機能を提供する場合には、 これを有効にしてください。 可能ならば付属のライブラリを使用することを推奨します。
--with-exec-dir=DIR
セーフモード時のみ DIR におけるプログラムの実行を 許可します。 デフォルトは、/usr/local/bin です。 このオプションは、デフォルト値の設定のみを行いますが、 この値は、設定ファイル中の safe_mode_exec_dir 命令により後で変更可能です。
--enable-debug
特別なデバッグ情報を有効にします。PHPに関する問題が ある場合、この機能により詳細な情報を得ることが可能です。 (この機能は、PHPスクリプトをデバッグする機能や情報を提供する わけでは全くないことに注意してください。)
--enable-safe-mode
"セーフモード" をデフォルトにします。 これにより、ドキュメントルート以外では、ファイルを 開けないといった厳しい制限が PHP の動作に対して課されます。 詳細については、セキュリティの章 を参照してください。 CGI ユーザーは、常に セキュアモードを有効にするべきです。 このオプションは、デフォルト値のみをセットします。 デフォルト値は、後に 設定ファイル 中の safe_mode 命令で 有効または無効に変更可能です。
--enable-track-vars
PHP が、配列 HTTP_GET_VARS、HTTP_POST_VARS、HTTP_COOKIE_VARS により 定義された GET/POST/cookie 変数の履歴を追うようにします。 このオプションは、デフォルト値のみをセットします。 デフォルト値は、後に 設定ファイル 中の track_vars 命令で 有効または無効に変更可能です。
--enable-magic-quotes
デフォルトでマジック・クオートを有効にします。 このオプションは、デフォルト値のみをセットします。 デフォルト値は、後に 設定ファイル 中の magic_quotes_runtime 命令で有効または無効に変更可能です。 magic_quotes_gpc とmagic_quotes_sybase 命令も 参照して下さい。
--enable-debugger
PHP 内部デバッガのサポートを有効にします。 この機能は、まだ実験段階です。 設定ファイル 中の デバッガ設定 命令も 参照下さい。
--enable-discard-path
このオプションが有効の場合、PHP CGI バイナリは、 web ツリー外の安全な場所に置かれ、.htaccess セキュリティ を欺くことが不可能になります。 このオプションに関する詳細は、 セキュリティの章 を参照ください。
--enable-force-cgi-redirect
内部サーバーリダイレクトに関してセキュリティチェックを有効にします。 Apache で CGI 版の PHP を実行する場合には、このオプションを使用する べきです。
PHP を CGI バイナリとして実行する場合、 PHP はデフォルトで、リダイレクションで実行されたかを 最初に確認します。 (例えば、Apache では、Action 命令を用いて実行される場合) これにより、 http://my.host/cgi-bin/php/secret/doc.html のように直接ファイルを呼ぶことにより Web サーバーの標準の認証機構をバイパスするために PHP バイナリが使用されないようにします。 この例は、http://my.host/secret/doc.html を アクセスしますが、httpd によりディレクトリ /secret に関して 強制されるいかなるセキュリティ設定も引継ぎません。
このオプションを有効にすることによりリダイレクションの 確認が行われなくなるのではなく、 httpd のセキュリティと認証設定をバイパスすることが可能になります。 自分のサーバーソフトウエアが、安全なリダイレクションが完了したことを 検知できず、 ドキュメントルート以下にある全てのファイルとユーザーディレクトリが 誰かにアクセスされる可能性がある場合にのみこのオプションを有効に すべきです。
このオプションについては、 セキュリティの章をご覧ください。
--disable-short-tags
PHP タグの短縮形 <? ?> を使用不可にします。 PHP を XML と共に使用する場合は、 短縮形を使用不可にする必要があります。 短縮形を使用不可にした場合、PHP のコードタグは、 <?php ?> のみとなります。 このオプションは、デフォルト値のみをセットしますが、 後に 設定ファイル 中で short_open_tag 命令 で使用可能または使用不可にできます。
--enable-url-includes
他の HTTP または FTP サーバーにあるコードを include() でPHP から 直接実行可能にします。 設定ファイル 中の include_path オプションも 参照して下さい。
PHP インストール時に他のディレクトリにあるヘッダファイルまたは ライブラリファイルを探させるようにするためには、 環境変数 CPPFLAGS または LDFLAGS をそれぞれ修正して下さい。 高機能シェルを使用している場合、 LDFLAGS=-L/my/lib/dir CPPFLAGS=-I/my/include/dir ./configure が実行可能でなければなりません。
PHP の設定が終わって始めて、 CGI 実行ファイルまたは PHP ライブラリを構築する準備が完了します。 コマンド make を使用する際には、このことに 注意しなければなりません。 設定に失敗し、原因が分からない場合は、 インストール時の問題 を参照してください。
PHP を CGI プログラムとして構築した場合、 make test とタイプして構築が成功したか どうかを確認することができます。 この方法は、構築したプログラムを試験するのに良い方法です。 この方法により、導入するプラットホームにおける PHP の問題点を 早期に発見することが可能になり、後になってこの問題点により 苦しめられることもなくなるでしょう。
CGI プログラムとして PHP を構築した場合、 make bench とタイプすることにより ベンチマークを行うことができます。 セーフモードがデフォルトでオンの場合、30 秒以上かかる場合には ベンチマークを終了することができなくなります。 これは、セーフモードにおいては set_time_limit を使用することができないからです。 スクリプト中でこの時間を制御するには、 max_execution_time を設定して下さい。 make bench は、 設定ファイル を無視します。