設定ディレクティブ

以下のリストは、PHPディレクティブの完全なリストではありません。ディレ クティブのリストは、例えばセッション関連のディレクティブは セッションの章にあるといったように 各分野毎に適当な場所にあります。

httpdオプション

表 4-2. httpdオプション

名前デフォルト変更の可否
async_send"0"PHP_INI_ALL

言語オプション

表 4-3. 言語およびその他の設定オプション

名前デフォルト変更の可否
short_open_tagOnPHP_INI_SYSTEM|PHP_INI_PERDIR
asp_tagsOffPHP_INI_SYSTEM|PHP_INI_PERDIR
precision"14"PHP_INI_ALL
y2k_complianceOffPHP_INI_ALL
allow_call_time_pass_referenceOnPHP_INI_SYSTEM|PHP_INI_PERDIR
expose_phpOnPHP_INI_SYSTEM

以下に設定ディレクティブに関す る簡単な説明を示します。

short_open_tag boolean

PHP タグの短縮型 (<? ?>) を使用 可能にするかどうかを設定します。PHPをXMLと組み合わせて用いる 場合は、<?xml ?>をファイル中で用 いるためにこのオプションをオフにする必要があります。オンにし た場合にPHPでXMLを出力するには、例えば、次のようにします。 <?php echo '<?xml version="1.0"'; ?> これをオフにした場合、長い方の形式のタグ (<?php ?>)を使用する必要がありま す。

注意: このディレクティブは、<? echoと同じ形式の ショートカット<?=も影響を受けます。 このショートカットを使用するには、 short_open_tagをonとする 必要があります。

asp_tags boolean

ASP 形式のタグ <% %> を通常のタグ <?php ?> に加えて使用可能にします。 このスイッチにより、出力の短縮形 <%= $value %> も 使用できるようになります。 詳細な情報は、 HTML からのエスケープを参照下さい。

注意: ASP形式のタグは3.0.4で追加されました。

precision integer

浮動小数点数に関して表示される最大桁数を指定します。

y2k_compliance boolean

2000年問題対応を強制します。(2000年問題非対応のブラウザにおいて、問題 が発生する可能性があります。)

allow_call_time_pass_reference boolean

関数のコール時に引数を強制的に参照で渡す機能の有効/無効を設定 します。この機能は過去のものであり、将来のバージョンの PHP/Zendではサポートされない可能性があります。 推奨される方法は、関数宣言時に参照渡しとするべき引数を指定す る方法です。将来のバージョンでの動作を保障するために、このオ プションをoffとし、スクリプトがこの状態で正しく動作することを 確認することが推奨されます。 (この機能を使用する度に警告が発生し、引数は参照ではなく値で渡 されます。)

参照に関する説明も 参照下さい。

expose_php boolean

(例えば、WebサーバヘッダにPHPのサインを追加することにより、) PHPがサーバーにインストールされていることを表示するかどうかを 指定します。これは全くセキュリティ上の脅威ではなく、サーバ上 でPHPを使用しているかどうかを調べられるようにするものです。

リソース制限

表 4-4. リソース制限

名前デフォルト変更の可否
memory_limit"8M"PHP_INI_ALL

以下に設定ディレクティブに関す る簡単な説明を示します。

memory_limit integer

スクリプトが確保できる最大メモリをバイト数で指定します。この 命令は、正しく書かれていないスクリプトがサーバーのメモリを食 いつぶすことを防止するのに役立ちます。 このディレクティブを使うためには、コンパイル時に有効にして おかなくてはなりません。このとき、configure のパラメータには、 --enable-memory-limit が含まれているはずです。 もし、使用可能メモリに制限を設けたくない場合は、-1 を指定して ください。

As of PHP 4.3.2, and when memory_limit is enabled, the PHP function memory_get_usage() is made available.

max_execution_time も参照下さい。

データ処理

表 4-5. データ処理設定オプション

名前デフォルト変更の可否
track-vars"On"PHP_INI_??
arg_separator.output"&"PHP_INI_ALL
arg_separator.input"&"PHP_INI_SYSTEM|PHP_INI_PERDIR
variables_order"EGPCS"PHP_INI_ALL
register_globals"Off"PHP_INI_PERDIR|PHP_INI_SYSTEM
register_argc_argv"On"PHP_INI_PERDIR|PHP_INI_SYSTEM
post_max_size"8M"PHP_INI_SYSTEM|PHP_INI_PERDIR
gpc_order"GPC"PHP_INI_ALL
auto_prepend_file""PHP_INI_SYSTEM|PHP_INI_PERDIR
auto_append_file""PHP_INI_SYSTEM|PHP_INI_PERDIR
default_mimetype"text/html"PHP_INI_ALL
default_charset"iso-8859-1"PHP_INI_ALL
always_populate_raw_post_data"0"PHP_INI_SYSTEM|PHP_INI_PERDIR
allow_webdav_methods"0"PHP_INI_SYSTEM|PHP_INI_PERDIR

以下に設定ディレクティブに関す る簡単な説明を示します。

track_vars boolean

このオプションを有効にした場合、環境変数、GET、POST、クッキー、 サーバ変数はそれぞれ、グローバル連想配列 $_ENV, $_GET, $_POST, $_COOKIE, $_SERVERで参照することができます。

PHP 4.0.3以降, track_vars は常にonとなっている ことに注意して下さい。

arg_separator.output string

PHPがURLを生成する際にURL引数を区分するために使用されるセパレー タ。

arg_separator.input string

入力されたURLを変数にパースする際にPHPが使用するセパレータのリスト。

注意: このディレクティブで指定した全ての文字はセパレータとして認識 されます!

variables_order string

EGPCS (Environment, GET, POST, Cookie, Server) 変数のパースの 順番を設定します。このディレクティブのデフォルトの設定値は、 "EGPCS"です。例えば、これを"GP"に設定するとPHPは完全に環境変 数、クッキー、サーバ変数を無視し、GETメソッド変数を同じ名前の POSTメソッド変数で全て上書きするようになります。

register_globals も参照下さい。

register_globals boolean

EGPCS(Environment, GET, POST, Cookie, Server)変数を グローバル変数として登録するかどうかを指定します。例えば、 register_globals = onの場合、URL http://www.example.com/test.php?id=3は、 $idを生成します。また、 $_SERVER['DOCUMENT_ROOT']から $DOCUMENT_ROOTが生成されます。 使用するスクリプトのグローバルスコープをユーザのデータで混乱 させられたくない場合には、このオプションをoffにするとよいでしょう。 PHP 4.2.0以降、 このディレクティブのデフォルトは、offとなっています。 スーパーグローバル: $_ENV, $_GET, $_POST, $_COOKIE, $_SERVERのような PHPの定義済みの変数を かわりに使用することが推奨されています。 関連する情報については、セキュリティの章の register_globalsの使用 を参照してください。

register_globalsは、 (ini_set()で)実行時に設定することができないことに 注意して下さい。しかし、前記のようにホストが許可している場合には、 .htaccessを使用することができます。 .htaccessエントリの例を以下に示します。 php_flag register_globals on

注意: register_globals は、 variables_order ディレクティブの影響を受けます。

register_argc_argv boolean

PHPが変数argvとargcを宣言するかどうかを指定します (argvにはGETの情報が格納されます)。

コマンドライン も参照下さい。このディレクティブはPHP 4.0.0で 追加されました。以前のバージョンでは常に"on"です。

register_long_arrays boolean

PHPが、古い長い$HTTP_*_VARS 型の 定義済みの変数 を登録するかどうかを指定します。 On (デフォルト)とした場合、$HTTP_GET_VARS のような 長い定義済みのPHP変数が定義されます。 これらの変数を使用していない場合には、性能面からこのオプションをoffとすることが 推奨されています。 代りに$_GETのようなスーパーグローバル変数を使用して下さい。

このディレクティブはPHP 5.0.0で利用可能となりました。

post_max_size integer

POSTデータに許可される最大サイズを設定します。この設定は、ファ イルアップロードにも影響します。大きなファイルをアップロード するには、この値を upload_max_filesize より大きく設定する必要があります。

configureスクリプトでメモリ制限を有効とした場合、memory_limitも ファイルアップロードに影響します。一般的に memory_limit は、 post_max_sizeよりも大きく する必要があります。

gpc_order string

GET/POST/COOKIE 変数処理の順番を設定します。この命令の デフォルトの設定は、"GPC"です。例えば、これを"GP"にPHPはクッキーを 完全に無視し、GETメソッド変数を同名のPOSTメソッド変数で上書き します。

注意: このオプションは、PHP 4では利用できまないことに注意して下さい。 代わりに、variables_order を使用して下さい。

auto_prepend_file string

メインファイルの前に自動的に付加されるファイルの名前を 指定します。 このファイルは、include() 関数のコール時 と同様に読み込まれます。 このため、include_path が使用されます。

特別な値 none を指 定すると、ファイルを前に追加する機能は無効となります。

auto_append_file string

メインファイルの後に自動的に追加されるファイルの 名前を指定します。 このファイルは、include() 関数のコール時と同様に 読み込まれます。 このため、include_path が使用されます。

none を値として 指定するとこの自動付加機能はオフとなります。

注意: スクリプトが exit() で終了する場合、 この自動付加機能は使用されません 。

default_mimetype string

default_charset string

4.0b4以降、PHP は、デフォルトで常にContent-type:ヘッダで character encodingを出力するようになっています。charsetの送信 を無効にするには、これを空にして下さい。

always_populate_raw_post_data boolean

常に$HTTP_RAW_POST_DATA変数にアクセス可能とします。

allow_webdav_methods boolean

PHPスクリプトの中で WebDAV http リクエスト (例:PROPFIND, PROPPATCH, MOVE, COPY, 等..) の処理を可能にします。 これらのリクエストのPOSTデータを取得したい場合、 always_populate_raw_post_data も同時に設定する必要があ ります。

magic_quotes_gpc, magic-quotes-runtime, および magic_quotes_sybase も参照下さい。

パスおよびディレクトリ

表 4-6. パスおよびディレクトリ設定オプション

名前デフォルト変更の可否
include_pathPHP_INCLUDE_PATHPHP_INI_ALL
doc_rootPHP_INCLUDE_PATHPHP_INI_SYSTEM
user_dirNULLPHP_INI_SYSTEM
extension_dirPHP_EXTENSION_DIRPHP_INI_SYSTEM
cgi.force_redirect"1"PHP_INI_SYSTEM
cgi.redirect_status_env""PHP_INI_SYSTEM
fastcgi.impersonate"0"PHP_INI_SYSTEM
cgi.rfc2616_headers"0"PHP_INI_SYSTEM

以下に設定ディレクティブに関す る簡単な説明を示します。

include_path string

require()include()、 および fopen_with_path() 関数がファイルを 探すディレクトリのリストを指定します。フォーマットは、システ ムの環境変数 PATHと同じです。つまり、UNIXでは コロンで、Windowsではセミコロンで区切ったディレクトリのリスト で指定します。

例 4-3. UNIX include_path

include_path=".:/php/includes"

例 4-4. Windows include_path

include_path=".;c:\php\includes"
このディレクティブのデフォルト値は、.(カレ ントディレクトリのみ)です。

doc_root string

サーバーにおけるPHPの"ルートディレクトリ"です。この値は空で無 い場合のみ使用されます。PHPが セーフモード で設定されている場合には、 このディレクトリの外側にあるファイルは使用されません。 PHPがFORCE_REDIRECTを指定してコンパイルされていない場合、 (IIS以外の)WebサーバのもとでCGIとしてPHPを実行する際には、 doc_rootを指定するべきです。 他の方法としては、後述の cgi.force_redirect 設定の使用があります。

user_dir string

PHPファイル用にユーザーのホームディレクトリ として使用する基本ディレクトリの名前。例えば、 public_html となります。

extension_dir string

動的にロード可能な拡張モジュールを置くディレクトリを 指定します。 enable_dldl() も参照下さい。

extension string

PHPの開始時に、どの動的ロード可能な拡張モジュールをロードするかを 指定します。

cgi.fix_pathinfo boolean

本来の PATH_INFO/PATH_TRANSLATED サポートをCGIで提供します。 PHPの以前の動作は、 SCRIPT_FILENAMEにPATH_TRANSLATEDを設定するというもので、 PATH_INFOの定義を理解していませんんでした。 PATH_INFOに関する詳細については、cgiの仕様を参照して下さい。 このオプションを1にすることにより、 PHP CGIはこのパスを仕様にあうように修正します。 ゼロとすると、 PHPは以前と同様に動作します。デフォルトは、ゼロです。 PATH_TRANSLATEDではなく、SCRIPT_FILENAMEを使用するようにスクリプト を修正する必要があります。

cgi.force_redirect boolean

cgi.force_redirect は、ほとんどのWebサーバのもとで CGI として PHP を実行する際のセキュリティを確保するために必要です。 未定義のままの場合、PHPはデフォルトでこれを on にします。 これを off にする時は、自己責任 の下に 行なってください。

注意: Windowsユーザ: IISでは安全にこれをoffにすることができ、 実際には、off にすることが「必要」です。 OmniHTTPD または Xitami を動作させるには、これを off にする「必要」 があります。

cgi.redirect_status_env string

cgi.force_redirect を on にし、Apache または Netscape (iPlanet) Webサーバのもとで実行していない場合、 実行を継続して良いかどうかをPHPが判断するために 環境変数の名前を設定する必要があるかもしれません。

注意: この変数を設定することにより、セキュリティ上の問題を発生する 場合があります。行うことのリスクをまず把握して下さい。

fastcgi.impersonate string

IIS (または WINNT ベースの OS) のもとでの FastCGI は、 クライアントをコールする際にセキュリティトークンを 匿名化する機能をサポートしています。 これにより、IIS がリクエストを処理するセキュリティコンテキストを 定義できるようになります。Apacheのもとで実行される mod_fastcgi は現在 (2002/03/17) この機能をサポートしていません。 IIS のもとで実行するには、1 に設定して下さい。 デフォルトは 0 です。

cgi.rfc2616_headers int

PHP に、HTTP レスポンスを返す際に、どの形式のヘッダーを使うか 指示します。0 にセットした場合は、Apache やその他の web サーバで サポートされている Status: ヘッダーを送信します。このオプションの値を 1 にセットした場合は、PHP は RFC 2616 の仕様に適合した形式のヘッダーを送信します。この意味がわからないときは、 0 にしておいてください。

ファイルアップロード

表 4-7. ファイルアップロード設定オプション

名前デフォルト変更の可否
file_uploads"1"PHP_INI_SYSTEM
upload_tmp_dirNULLPHP_INI_SYSTEM
upload_max_filesize"2M"PHP_INI_SYSTEM|PHP_INI_PERDIR

以下に設定ディレクティブに関す る簡単な説明を示します。

file_uploads boolean

HTTP ファイルアップロード を有効とするかどうか。 upload_max_filesize, upload_tmp_dir, post_max_size ディレクティブも参照下さい。

upload_tmp_dir string

ファイルアップロード時にファイル保存に用いるテンポラリディレクトリ。 PHPの実行ユーザーが書きこみ可能である必要が あります。指定されない場合、PHPはシステムのデフォルト設定を 使用します。

upload_max_filesize integer

アップロードされるファイルの最大サイズ。

SQL全般

表 4-8. SQL全般の設定オプション

名前デフォルト変更の可否
sql.safe_mode"0"PHP_INI_SYSTEM

以下に設定ディレクティブに関す る簡単な説明を示します。

sql.safe_mode boolean

デバッガ設定ディレクティブ

debugger.host string

デバッガにより使用されるホストのDNS名またはIPアドレス。

debugger.port string

デバッガにより使用されるポート番号。

debugger.enabled boolean

デバッガを有効にするかどうか。