Chapter 3. インストール

Table of Contents
UNIX 上でのソースからのインストール
Windows95/NT 上での PHP のインストール
インストール時の問題
セキュリティ

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

  • UNIX に関する基本的な知識("make" および C コンパイラを使える程度)

  • ANSI C コンパイラ

  • Web サーバー(当然)

UNIX 上でのソースからのインストール

ソースのダウンロード

最新版のソースコードは、 http://www.php.net にあります。

設定

PHP3 を設定する方法は、2種類あります。

  • PHP3 に付属する "setup" スクリプトを使用。このスクリプトは、 (PHP/FI 2.0 の "install" スクリプトとほとんど同様の) 一連の質問を行い、最後に "configure" を実行します。 このスクリプトを実行するには、./setup と入力します。

    このスクリプトは、"do-conf" というファイルを生成します。 このファイルには、configure に渡されるオプションが書かれています。 オプションを少しだけ変更する場合には、setup を再実行せずに このファイルを手で修正することが可能です。その後、 新しいオプションを用いて configure を実行するために ./do-conf と入力します。

  • マニュアルで configure を実行。オプションの内容を知るには、 ./configure --help と入力してください。

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

Apache モジュール

PHP3 を 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 モジュール

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

CGI バージョン

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

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

PHP3 は、多くのデータベース(と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 のバージョンを 検出します。PHP3 は、1.0 と 2.0 の両方をサポートします。しかし、 PHP3 を mSQL 1.0 でコンパイルした場合には、mSQL 1.0 データベース のみにアクセスすることが可能です。逆の場合も同様です。

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

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 ホームページ

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 で定義します。

For example, you can use Sybase SQL Anywhere on QNX as following: 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-maintainer-mode

      --enable-maintainer-mode
     

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

--with-system-regex

      --with-system-regex
     

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

--with-config-file-path

      --with-config-file-path=DIR
     

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

--with-exec-dir

      --with-exec-dir=DIR
     

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

--disable-debug

      --disable-debug
     

ライブラリまたは実行ファイル中にデバッグ情報を 含まないようにします。 デバッグ情報はバグの発見を容易にするので、 PHP3 がα版またはβ版の時には、デバッグ情報をオンのまま にするのが良いでしょう。

--enable-safe-mode

      --enable-safe-mode
     

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

--enable-track-vars

      --enable-track-vars
     

PHP3 が、配列 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
     

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

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

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

--enable-url-includes

      --enable-url-includes
     

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

--disable-syntax-hl

      --disable-syntax-hl
     

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

CPPFLAGS と LDFLAGS

PHP3 インストール時に他のディレクトリにあるヘッダファイルまたは ライブラリファイルを探させるようにするためには、 環境変数 CPPFLAGS または LDFLAGS をそれぞれ修正して下さい。 高機能シェルを使用している場合、 LDFLAGS=-L/my/lib/dir CPPFLAGS=-I/my/include/dir ./configure が実行可能でなければなりません。

構築

PHP3 の設定が終わって始めて、 CGI 実行ファイルまたは PHP3 ライブラリを構築する準備が完了します。 コマンド make を使用する際には、このことに 注意しなければなりません。 設定に失敗し、原因が分からない場合は、 インストール時の問題 を参照してください。

テスト

PHP3 を CGI プログラムとして構築した場合、 make test とタイプして構築が成功したか どうかを確認することができます。 この方法は、構築したプログラムを試験するのに良い方法です。 この方法により、導入するプラットホームにおける PHP3 の問題点を 早期に発見することが可能になり、後になってこの問題点により 苦しめられることもなくなるでしょう。

ベンチマーク

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