表 4-3言語およびその他の設定オプション
名前 | デフォルト | 変更の可否 |
---|---|---|
short_open_tag | On | PHP_INI_SYSTEM|PHP_INI_PERDIR |
asp_tags | Off | PHP_INI_SYSTEM|PHP_INI_PERDIR |
precision | "14" | PHP_INI_ALL |
y2k_compliance | Off | PHP_INI_ALL |
allow_call_time_pass_reference | On | PHP_INI_SYSTEM|PHP_INI_PERDIR |
expose_php | On | PHP_INI_SYSTEM |
以下に設定ディレクティブの簡単な説明を示します。
PHP タグの短縮型 (
? ?
) を使用 可能にするかどうかを設定します。PHPをXMLと組み合わせて用いる 場合は、
?xml ?
をファイル中で用 いるためにこのオプションをオフにする必要があります。オンにし
た場合にPHPでXMLを出力するには、例えば、次のようにします。
?php echo ' ?xml version="1.0"'; ?
これをオフにした場合、長い方の形式のタグ (
?php ?
)を使用する必要がありま す。
注意 このディレクティブは、 ? echo と同じ形式の ショートカット ?= も影響を受けます。 このショートカットを使用するには、 short_open_tag をonとする 必要があります。
ASP 形式のタグ % % を通常のタグ ?php ?
に加えて使用可能にします。 このスイッチにより、出力の短縮形 %= $value %
も使用できるようになります。 詳細な情報は、
HTML からのエスケープ
を参照下さい。
注意 ASP形式のタグは3.0.4で追加されました。
浮動小数点数に関して表示される最大桁数を指定します。
2000年問題対応を強制します。(2000年問題非対応のブラウザに問題
を発生する可能性があります。)
関数のコール時に引数を強制的に参照で渡す機能の有効/無効を設定
します。この機能は過去のものであり、将来のバージョンの
PHP/Zendではサポートされない可能性があります。
推奨される方法は、関数宣言時に参照渡しとするべき引数を指定す
る方法です。将来のバージョンでの動作を保障するために、このオ
プションをoffとし、スクリプトがこの状態で正しく動作することを 確認することが推奨されます。
(この機能を使用する度に警告が発生し、引数は参照ではなく値で渡 されます。)
参照に関する説明
も 参照下さい。
(例えば、WebサーバヘッダにPHPのサインを追加することにより、)
PHPがサーバーにインストールされていることを表示するかどうかを
指定します。これは全くセキュリティ上の脅威ではなく、サーバ上
でPHPを使用しているかどうかを調べられるようにするものです。
以下に設定ディレクティブに関する簡単な説明を示します。
スクリプトが確保できる最大メモリをバイト数で指定します。この
命令は、正しく書かれていないスクリプトがサーバーのメモリを食
いつぶすことを防止するのに役立ちます。
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 |
以下に設定ディレクティブに関する簡単な説明を示します。
このオプションを有効にした場合、環境、GET、POST、クッキー、サー
バ変数は、グローバル連想配列
$_ENV
,
$_GET
,
$_POST
,
$_COOKIE
,
$_SERVER
で参照することができます。
PHP 4.0.3以降、,
track_vars
は常にonとなっている ことに注意して下さい。
PHPがURLを生成する際にURL引数を区分するために使用されるセパレー
タ。
入力されたURLを変数にパースする際にPHPが使用するセパレータのリスト。
注意 このディレクティブで指定した全ての文字はセパレータとして認識 されます!
EGPCS (Environment, GET, POST, Cookie,
Server) 変数のパースの 順番を設定します。このディレクティブのデフォルトの設定値は、
"EGPCS"です。例えば、これを"GP"に設定するとPHPは完全に環境変
数、クッキー、サーバ変数を無視し、GETメソッド変数を同じ名前の
POSTメソッド変数で全て上書きするようになります。
register_globals
も参照下さい。
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 ディレクティブの影響を受けます。
PHPが変数argvとargcを宣言するかどうかを指定します
(argvにはGETの情報が格納されます)。
コマンドライン
も参照して下さい。このディレクティブはPHP 4.0.0で
追加されました。以前のバージョンでは常に"on"です。
POSTデータに許可される最大サイズを設定します。この設定は、ファ
イルアップロードにも影響します。大きなファイルをアップロード するには、この値を
upload_max_filesize
より大きく設定する必要があります。
configureスクリプトでメモリ制限を有効とした場合、
memory_limit
もファイルアッ プロードに影響します。一般的に
memory_limit
は、
post_max_size
よりも大きく する必要があります。
GET/POST/COOKIE 変数処理の順番を設定します。この命令のデフォ
ルトの設定は、"GPC"です。例えば、これを"GP"にPHPはクッキーを
完全に無視し、GETメソッド変数を同名のPOSTメソッド変数で上書き します。
注意 このオプションは、PHP 4では利用できまないことに注意して下さい。 代わりに、 variables_order を使用し て下さい。
メインファイルの前に自動的に付加されるファイルの名前を 指定します。
このファイルは、
include()
関数のコール時 と同様に読み込まれます。 このため、
include_path
が使用されます。
特別な値
none
を指 定すると、ファイルを前に追加する機能は無効となります。
メインファイルの後に自動的に追加されるファイルの 名前を指定します。
このファイルは、
include()
関数のコール時 と同様に読み込まれます。 このため、
include_path
が使用されます。
none
を値として 指定するとこの自動付加機能はオフとなります。
注意 スクリプトが exit() で終了する場合、 この自動付加機能は使用されません 。
4.0b4以降、PHP は、デフォルトで常にContent-type:ヘッダで
character encodingを出力するようになっています。charsetの送信
を無効にするには、これを空にして下さい。
常に$HTTP_RAW_POST_DATA変数にアクセス可能とします。
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_path | PHP_INCLUDE_PATH | PHP_INI_ALL |
doc_root | PHP_INCLUDE_PATH | PHP_INI_SYSTEM |
user_dir | NULL | PHP_INI_SYSTEM |
extension_dir | PHP_EXTENSION_DIR | PHP_INI_SYSTEM |
cgi.force_redirect | "1" | PHP_INI_SYSTEM |
cgi.redirect_status_env | "" | PHP_INI_SYSTEM |
fastcgi.impersonate | "0" | PHP_INI_SYSTEM |
以下に設定ディレクティブに関する簡単な説明を示します。
require()
、
include()
、 および
fopen_with_path()
関数がファイルを 探すディレクトリのリストを指定します。フォーマットは、システ ムの環境変数
PATH
と同じです。つまり、UNIXでは コロンで、Windowsではセミコロンで区切ったディレクトリのリスト
で指定します。
サーバーにおけるPHPの"ルートディレクトリ"です。この値は空で無
い場合のみ使用されます。PHPが
セー
フモード
で設定されている場合には、このディレクトリの外 側にあるファイルは使用されません。
PHPがFORCE_REDIRECTを指定してコンパイルされていない場合、
(IIS以外の)WebサーバのもとでCGIとしてPHPを実行する際には、
doc_rootを指定するべきです。 他の方法としては、後述の
cgi.force_redirect
設定の使用があります。
PHP
ファイル用にユーザーのホームディレクト リとして使用する基本ディレクトリの名前。例えば、
public_html
となります。
動的にロード可能な拡張モジュールを置くディレクトリを 指定します。 See
also:
enable_dl
, and
dl()
.
PHPの開始時にロードする動的にロード可能な拡張モジュール。
cgi.force_redirect
は、ほとんどのWebサーバのもとでCGIとして PHPを実行する際のセキュリティを確保するために必要です。
未定義のままの場合、PHPはデフォルトでこれをonにします。 これをoffにすることもできますが、
各自のリスクとなり ます。
注意 Windowsユーザ: IISでは安全にこれをoffにすることができます。 実際には、offにする必要があります。 OmniHTTPD または Xitami を動作させるには、これをoffにする必 要があります。
cgi.force_redirect を on にし、Apache または
Netscape (iPlanet) Webサーバのもとで実行していない場合、
実行を継続して良いかどうかをPHPが判断するために
環境変数の名前を設定する必要があるかもしれません。
注意 この変数を設定することにより、セキュリティ上の問題を発生する 場合があります。行うことのリスクをまず把握して下さい。
IIS(またはWINNTベースのOS)のもとでのFastCGIは、
クライアントをコールする際にセキュリティトークンを 匿名化する機能をサポートしています。
これにより、IISが配下でリクエストを実行するセキュリティコンテ
キストを定義できるようになります。Apacheのもとで実行される
mod_fastcgiは現在この機能をサポートしていません。(03/17/2002)
IISのもとで実行するには、1に設定して下さい。 デフォルトは0です。
表 4-7ファイルアップロード設定オプション
名前 | デフォルト | 変更の可否 |
---|---|---|
file_uploads | "1" | PHP_INI_SYSTEM |
upload_tmp_dir | NULL | PHP_INI_SYSTEM |
upload_max_filesize | "2M" | PHP_INI_SYSTEM|PHP_INI_PERDIR |
以下に設定ディレクティブに関する簡単な説明を示します。
HTTP
ファイルアップロー ド
を有効とするかどうか。
upload_max_filesize
,
upload_tmp_dir
,
post_max_size
ディレ クティブも参照下さい。
ファイルアップロード時にファイル保存に用いるテンポラリディレ クトリ。
PHP
の実行ユーザーが書きこみ可能で ある必要があります。指定されない場合、PHPはシステムのデフォル
ト設定を使用します。
アップロードされるファイルの最大サイズ。