デフォルトでは、PHP は CGI プログラムとしてビルドされます。すなわち、 コマンドラインインタプリタが生成され、 CGI 処理や Web 以外での PHP スクリプトの実行に使用できます。 通常は、PHP のモジュール組込みをサポートしている Web サーバに対しては、 性能面からモジュール版の PHP を選択するべきです。 しかし、CGI 版を使用すると、ページに応じて異なるユーザ ID で PHP を実行することが可能となる利点があります。
警告 |
CGI としてセットアップすると、サーバは様々な攻撃を受ける可能性があります。 これらの攻撃からサーバを守る方法については、 CGI セキュリティ のセクションを参照してください。 |
PHP4.3.0 において PHP に重要な追加がなされ、 CLI (Command Line Interface) と呼ばれる新しい SAPI が CGI バイナリと同じ名前で存在するようになりました。 configure のオプションにしたがって {PREFIX}/bin/php に インストールされます。詳細については、マニュアルの 「PHPをコマンドラインから使用する」を 参照してください。
PHP を CGI 版のプログラムとしてビルドした場合、make test とすることで、ビルドされたバイナリをテストすることが 可能です。常にビルド後のテストを行うことが推奨されます。これにより、 使用するプラットホームにおける PHP の問題を早期に見付けることが可能となり、 後になってその問題に苦しむことがなくなるでしょう。
PHP 3 を CGI 版プログラムとしてビルドした場合は、 make bench とすることにより、ベンチマークを 実行することができます。セーフモードがデフォルトで on の場合、30 秒以上かかるベンチマークは完了させることができません。これは、 セーフモードでは、set_time_limit() を使用することが できないためです。スクリプト用にこの時間を設定するには、設定 max_execution_time を使用してください。make bench は、設定ファイル を無視します。
注意: make bench は PHP 3 でのみ利用可能です。
いくつかのサーバが提供する環境変数
は、現在の CGI/1.1 規約
において定義されていません。以下の変数だけがこの規約で定義されています。
AUTH_TYPE
,
CONTENT_LENGTH
, CONTENT_TYPE
,
GATEWAY_INTERFACE
, PATH_INFO
,
PATH_TRANSLATED
, QUERY_STRING
,
REMOTE_ADDR
, REMOTE_HOST
,
REMOTE_IDENT
, REMOTE_USER
,
REQUEST_METHOD
, SCRIPT_NAME
,
SERVER_NAME
, SERVER_PORT
,
SERVER_PROTOCOL
, および SERVER_SOFTWARE
。
その他の環境変数は、「ベンダー拡張」として取り扱うべきです。