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シグナルによりサーバーをリロードするのではなく、
     サーバーをストップしリスタートする必要があります。)
      

Apache モジュール

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.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にロードすることが可能です。

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

LDAP


      --with-ldap=DIR
     

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

LDAPに関する詳細は、RFC1777 およびRFC1778を参照し てください。

国際化(日本語)関数


      --enable-i18n
     

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

この関数を使用するためには、国際化パッチを次の場所から入手する必要が あります。 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 は、 設定ファイル を無視します。