本節においては、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は複数の方法でコンパイル可能です。以下に手順を簡単に要約したも のをまとめます。
./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.a、 mod_php4.cおよびいくつかの関連ファイルが Apacheソースツリーのsrc/modules/php4ディレクト リにコピーされます。この後、Apacheを --activate-module=src/modules/php4/libphp4.a を指定してコンパイルすると、Apacheは libphp4.aをhttpdバイナ リに静的にリンクします。PostgreSQLサポートは、 httpdバイナリに直接インクルードされ、 最終的な結果としては、Apache全体とPHP全体を含む単一の httpdバイナリとなります。
./configure --with-apache=/path/to/apache_source --with-pgsql=shared
|
上と同じですが、最終的なhttpdに PostgreSQLサポートを直接インクルードする代わりに、共有ライブラリ pgsql.soをファイル php.iniまたはdl()により直 接的にPHPにロードすることが可能です。
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やAdabasDのような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
|
国際化関数のサポートを有効にします。 国際化サポート関数により文字コードの相互変換やマルチバイト検索を始めとする 日本語を使用した処理を行う際に便利な機能が使用可能となります。
この関数を使用するためには、国際化パッチを次の場所から入手する必要が あります。 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-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 は、 設定ファイル を無視します。