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

本節においては、PHP のインストールと設定に関する手引きを示します。 事前に必要な知識とソフトウエアを以下に示します。

インストール簡易ガイド (Apache モジュール版)


 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種類あります。

その他の設定オプションについて詳細を以下に示します。

Apache モジュール

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 です。

fhttpd モジュール

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

CGI バージョン

デフォルトでは、PHP は CGI プログラムとして作成されます。 PHP モジュールをサポートする Web サーバーを実行する場合、 一般に性能面からモジュールの方が選択されるでしょう。 しかし、CGI バージョンでは、Apache ユーザーが複数のユーザーIDで 複数の PHP 用ページを実行することが可能です。 PHP を CGI として実行しようとする場合には、 セキュリティの章 を一読するようにしてください。

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

PHP は、以下に示す多くのデータベース(とODBC)をネーティブでサポートしています。

Adabas D


      --with-adabas=DIR
     

Adabas D サポートを有効にしてコンパイルします。パラメータは、 Adabas D インストールディレクトリです。デフォルトは、 /usr/local/adabasdです。

Adabas ホームページ

dBase


      --with-dbase
     

付属する DBase サポートを有効にしてコンパイルします。 外部ライブラリは必要ありません。

filePro


      --with-filepro
     

付属の filePro サポート(読み込みのみ)を有効にします。 外部ライブラリは必要ありません。

mSQL


      --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 データベース のみにアクセスすることが可能です。逆の場合も同様です。

設定ファイル中の mSQL 設定用ディレクティブ も参照してください。

mSQL ホームページ

MySQL


      --with-mysql=DIR
     

MySQL サポートを有効にします。 このオプションへのパラメータは、MySQL をインストールした ディレクトリで、デフォルトでは、 /usr/local に設定されています。 これは、MySQL 配布版におけるデフォルトのインストールディレクトリ です。

設定ファイル中の MySQL Configuration命令も 参照してください。

MySQL ホームページ

iODBC


      --with-iodbc=DIR
     

iODBC サポートを有効にします。この機能は、最初は iODBC ドライバ マネージャ用に開発されました。 iODBC ドライバは、多くの UNIX 上で 動作する自由に再配布可能な ODBC ドライバマネージャです。 このオプションへのパラメータは、iODBC をインストールした ディレクトリで、デフォルトでは、 /usr/local に設定されています。

FreeODBC ホームページ または iODBC ホームページ を参照下さい。

OpenLink ODBC


       --with-openlink=DIR
      

OpenLink ODBC サポートを導入します。このオプションに対するパラメータは、 OpenLink ODBC のインストールディレクトリであり、デフォルトは /usr/local/openlink になっています。

OpenLink Software のホームページ

Oracle


      --with-oracle=DIR
     

Oracle サポートを有効にします。この機能は既にテストが行われており、 少なくとも Oracle 7.0 版から 7.3 版までは動作するはずです。 パラメータは、ORACLE_HOME ディレクトリです。 Oracle 環境が設定されている場合には、このパラメータを指定する 必要はありません。

Oracle ホームページ

PostgreSQL


      --with-pgsql=DIR
     

PostgreSQL サポートを有効にします。パラメータは、PostgreSQL をインストールしたディレクトリです。デフォルトでは、/usr/local/pgsql に設定されています。

設定ファイル中の Postgres Configuration 命令も参照下さい。

PostgreSQL ホームページ

Solid


      --with-solid=DIR
     

Solid サポートを有効にします。パラメータは、Solid をインストールした ディレクトリです。デフォルトでは、/usr/local/solidに設定されています。

Solid ホームページ

Sybase


      --with-sybase=DIR
     

Sybase サポートを有効にします。パラメータは、Sybase をインストール したディレクトリです。デフォルトでは、/home/sybase に設定されています。

設定ファイル中の Sybase Configuration 命令も参照下さい。

Sybase ホームページ

Sybase-CT


      --with-sybase-ct=DIR
     

Sybase-CT サポートを有効にします。パラメータは、Sybase-CT の インストールディレクトリです。デフォルトでは、/home/sybase に設定されています。

設定ファイル 中の Sybase-CT Configuration 命令も参照下さい。

Velocis


      --with-velocis=DIR
     

Velocis サポートを有効にします。パラメータは、Velocis の インストールディレクトリです。デフォルトでは、/usr/local/velocis に設定されています。

Velocis ホームページ

カスタム ODBC ライブラリ


      --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

Unified ODBC


      --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 設定命令 も参照ください。

LDAP


      --with-ldap=DIR
     

LDAP (Lightweight Directory Access Protocol) サポートを有効にします。 パラメータは、LDAP のインストールディレクトリで、 デフォルトでは、/usr/local/ldap に設定されています。

LDAP に関する詳細は、 RFC1777RFC1778 を参照してください。

国際化(日本語)関数


      --enable-i18n
     

国際化関数のサポートを有効にします。 国際化サポート関数により文字コードの相互変換やマルチバイト検索を始めとする 日本語を使用した処理を行う際に便利な機能が使用可能となります。 国際化関数は、PHP3国際化チームにより現在、βテスト中です。

この関数を使用するためには、国際化パッチを次の場所から入手する必要が あります。 http://php.jpnnet.com/

マルチバイト対応正規表現検索


      --enable-mbregex
     

マルチバイト文字対応の正規表現関数を使用可能にします。

この関数を使用するためには、国際化パッチを次の場所から入手する必要が あります。 http://php.jpnnet.com/

他の設定オプション

--with-mcrypt=DIR


      --with-mcrypt
     

mcryptライブラリのサポート機能を有効にします。 詳細は mcrypt ドキュメント を参照下さい。 オプションの DIR 引数を使用した場合、 DIR/include で mcrypt.h を探します。

--enable-sysvsem


       --enable-sysvsem
      

(多くの UNIX 互換 OS でサポートされている) Sys V セマフォ用サポートを導入します。 更に詳細な情報については、 セマフォと共有メモリに関するドキュメント を参照下さい。

--enable-sysvshm


       --enable-sysvshm
      

(多くの UNIX 互換 OS でサポートされている) Sys V 共有メモリサポートを導入します。 更に詳細な情報については、 セマフォと共有メモリに関するドキュメント を参照下さい。

--with-xml


       --with-xml
      

James Clark のexpat ライブラリ を 使用してテスト版の XML パーサーのサポートを導入します。 詳細な情報については、 XML 関数リファレンス を 参照下さい。

--enable-maintainer-mode


      --enable-maintainer-mode
     

PHP 開発者により使用される外部定義とコンパイラ警告を オンにします。

--with-system-regex


      --with-system-regex
     

付属の正規表現ライブラリではなく、システムの正規表現ライブラリを 使用します。PHPをサーバーモジュールとして構築する場合には、 PHP を構築する時とサーバーをリンクする時とで同じ ライブラリを使用する必要があります。 システムのライブラリが有用な特別な機能を提供する場合には、 これを有効にしてください。 可能ならば付属のライブラリを使用することを推奨します。

--with-config-file-path


      --with-config-file-path=DIR
     

PHP が起動する時に 設定ファイル を探すパスを指定します。

--with-exec-dir


      --with-exec-dir=DIR
     

セーフモード時のみ DIR におけるプログラムの実行を 許可します。 デフォルトは、/usr/local/bin です。 このオプションは、デフォルト値の設定のみを行いますが、 この値は、設定ファイル中の safe_mode_exec_dir 命令により後で変更可能です。

--enable-debug


      --enable-debug
     

特別なデバッグ情報を有効にします。PHPに関する問題が ある場合、この機能により詳細な情報を得ることが可能です。 (この機能は、PHPスクリプトをデバッグする機能や情報を提供する わけでは全くないことに注意してください。)

--enable-safe-mode


      --enable-safe-mode
     

"セーフモード" をデフォルトにします。 これにより、ドキュメントルート以外では、ファイルを 開けないといった厳しい制限が PHP の動作に対して課されます。 詳細については、セキュリティの章 を参照してください。 CGI ユーザーは、常に セキュアモードを有効にするべきです。 このオプションは、デフォルト値のみをセットします。 デフォルト値は、後に 設定ファイル 中の safe_mode 命令で 有効または無効に変更可能です。

--enable-track-vars


      --enable-track-vars
     

PHP が、配列 HTTP_GET_VARS、HTTP_POST_VARS、HTTP_COOKIE_VARS により 定義された GET/POST/cookie 変数の履歴を追うようにします。 このオプションは、デフォルト値のみをセットします。 デフォルト値は、後に 設定ファイル 中の track_vars 命令で 有効または無効に変更可能です。

--enable-magic-quotes


      --enable-magic-quotes
     

デフォルトでマジック・クオートを有効にします。 このオプションは、デフォルト値のみをセットします。 デフォルト値は、後に 設定ファイル 中の magic_quotes_runtime 命令で有効または無効に変更可能です。 magic_quotes_gpcmagic_quotes_sybase 命令も 参照して下さい。

--enable-debugger


      --enable-debugger
     

PHP 内部デバッガのサポートを有効にします。 この機能は、まだ実験段階です。 設定ファイル 中の デバッガ設定 命令も 参照下さい。

--enable-discard-path


      --enable-discard-path
     

このオプションが有効の場合、PHP CGI バイナリは、 web ツリー外の安全な場所に置かれ、.htaccess セキュリティ を欺くことが不可能になります。 このオプションに関する詳細は、 セキュリティの章 を参照ください。

--enable-bcmath


      --enable-bcmath
     

bc 形式の任意精度数学関数を有効にします。 設定ファイル中の bcmath.scale オプションも参照下さい。

--enable-force-cgi-redirect


      --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


      --disable-short-tags
     

PHP タグの短縮形 <? ?> を使用不可にします。 PHP を XML と共に使用する場合は、 短縮形を使用不可にする必要があります。 短縮形を使用不可にした場合、PHP のコードタグは、 <?php ?> のみとなります。 このオプションは、デフォルト値のみをセットしますが、 後に 設定ファイル 中で short_open_tag 命令 で使用可能または使用不可にできます。

--enable-url-includes


      --enable-url-includes
     

他の HTTP または FTP サーバーにあるコードを include() でPHP から 直接実行可能にします。 設定ファイル 中の include_path オプションも 参照して下さい。

--disable-syntax-hl


      --disable-syntax-hl
     

構文強調機能をオフにします。

CPPFLAGS と LDFLAGS

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 は、 設定ファイル を無視します。