章 3. 設定

目次
設定ファイル

設定ファイル

設定ファイル(PHP 3.0では php3.ini、 PHP 4.0 では php.ini) は、PHP の起動時に読み込まれます。 PHP のサーバー版では、このファイルは、Web サーバーの 起動時にのみ一度だけ読み込まれます。 CGI 版では、起動する度にこのファイルが読み込まれます。

PHP を Apache モジュールとして使用する場合、Apache 用 設定ファイルや .htaccess ファイルに命令を記述することにより PHPの設定を行うことが可能です。

PHP 3.0 においては、php3.ini の各ディレクティブに 対応した Apache 用ディレクティブが存在し、 PHP 用のディレクティブの前に "php3_" を付けて使用することにより、 設定の変更が可能です。

PHP 4.0 においては、PHP 用設定を変更可能なApache用ディレクティブは、 僅かしかありません。

php_value name value

指令した変数の値を設定します。

php_flag name on|off

論理値のオプション設定を変更するために使用します。

php_admin_value name value

指定した変数の値を設定します。 "Admin" は、メインの Apache 用設定ファイルにおいてのみ 設定可能で、.htaccess ファイルからは設定できません。

php_admin_flag name on|off

論理値のオプションを設定するために使用されます。 (Adminの意味は上記のオプションと同じです。)

phpinfo の出力を見ることにより、 設定値を確認することができます。 各設定の値は、get_cfg_var により 得ることができます。

一般的な設定用の命令

asp_tags boolean

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

注意: Support for ASP-style tags was added in 3.0.4 で追加されました。

auto_append_file 文字列

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

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

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

auto_prepend_file 文字列

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

none を値として 指定すると、ファイルを前に追加する機能はオフとなります。

cgi_ext 文字列

display_errors 論理値

HTML 出力の一部としてエラーを画面に出力するかどうかを定義します。

doc_root 文字列

サーバーにおける PHP の "ルートディレクトリ" です。 この値は空で無い場合のみ使用されます。 PHP が セーフモード で設定されている場合には、このディレクトリの外側にあるファイルは 使用されません。

engine 論理値

この命令は、Apache モジュール版のユーザーのみに有用です。 この命令は、ディレクトリ毎または仮想サーバー毎に PHP による 処理をオンまたはオフにしたいようなサイトで使用されます。 httpd.conf ファイルの適当な場所に php3_engine off などと書くことにより、 PHP は有効または無効となります。

error_log 文字列

スクリプトエラーを記録するファイルの名前。 syslog という名前が指定された場合、 エラーはシステムログの方に送られます。 UNIX においては、システムログとは syslog(3) を意味しますが、 Windows NT ではイベントログとなります。 システムログは、Windows 95 ではサポートされません。

error_reporting 整数

エラーレポートのレベルをセットします。 パラメータは、ビットフィールドを表す整数です。 望みのエラーレポートレベルの値を加えて下さい。

表 3-1. エラーレポートレベル

ビット値有効なレポート
1通常のエラー
2通常の警告
4パーサのエラー
8クリティカルでないシステム関連の警告
この命令のデフォルト値は、7 です。(通常のエラー、通常の警告、 パーサエラーが表示されます。)

open_basedir 文字列

PHP によりオープン可能なファイルを指定したディレクトリツリー以下に 制限します。

スクリプトが、例えば fopen または gzopen でファイルをオープン しようとした場合、そのファイルの位置が確認されます。 ファイルが、指定したディレクトリツリーの外側にあった場合、 PHP は、そのファイルのオープンを拒否します。 シンボリックリンクは全て解釈されるので、symlink により 制限を回避することは不可能です。

特別な値 . は、スクリプトが置かれているディレクトリが 基本ディレクトリとして使用されることを示します。

Windows では、ディレクトリはセミコロンで区切ります。 他の全てのシステムでは、ディレクトリは転んで区切ります。 Apache モジュールと同様に、親ディレクトリからの open_basedir パスが自動的に継承されます。

注意: PHP 3.0.7 から、複数ディレクトリのサポートが追加されています。

デフォルトでは、全てのファイルのオープンが許可されています。

gpc_order 文字列

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

ignore_user_abort string

デフォルトで On です。 Off に変更した場合、スクリプトはクライアント が接続を切断した後で何かを出力しようとした直後に終了されます。 ignore_user_abort も参照下さい。

include_path 文字列

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

例 3-1. UNIX include_path


include_path=.:/home/httpd/php-lib

例 3-2. Windows include_path


include_path=".;c:\www\phplib"
この命令のデフォルト値は、. (カレントディレクトリのみ)です。

isapi_ext 文字列

log_errors 論理値

スクリプトエラーメッセージをサーバーエラーログに 記録する必要があるかどうかを指定します。 このオプションは、サーバーの種類に依存します。

magic_quotes_gpc 論理値

GPC (Get/Post/Cookie) 命令に関する magic_quotes の状態を セットします。 magic_quotes がオンの場合、' (シングルクオート)、 " (ダブルクオート)、\ (バックスラッシュ) 、NUL は 全て自動的にバックスラッシュでエスケープ処理されます。 magic_quotes_sybase もオンの場合、シングルクオートは、 バックスラッシュの代わりにシングルクオートでエスケープ されます。

magic_quotes_runtime 論理値

magic_quotes_runtime が有効の場合、 データベースおよびテクストファイルを含む外部ソースから データを返す全ての関数のクオートは、バックスラッシュで エスケープされます。 magic_quotes_sybase もオンの場合、 シングルクオートは、バックスラッシュの代わりにシングルクオート でエスケープされます。

magic_quotes_sybase 論理値

magic_quotes_gpc または magic_quotes_runtime が有効の場合、 magic_quotes_sybase もオンの場合に、 シングルクオートはバックスラッシュの代わりにシングルクオートで エスケープされます。

max_execution_time 整数

スクリプトがパーサにより強制終了されるまでに許容される 最大の時間を秒単位で指定します。 この命令は、いい加減に書かれたスクリプトがサーバーの負荷を 上げることを防止するのに役立ちます。

memory_limit 整数

スクリプトが確保できる最大メモリをバイト数で指定します。 この命令は、いい加減に書かれたスクリプトがサーバーのメモリを 食いつぶすことを防止するのに役立ちます。

nsapi_ext 文字列

short_open_tag 論理値

PHP タグの短縮型 (<? ?> を使用可能に するかどうかを設定します。 PHP を XML と組み合わせて用いる場合は、このオプションを オフにする必要があります。 これをオフにした場合、長い方の形式のタグ (<?php ?>) を使用する必要 があります。

sql.safe_mode 論理値

track_errors 論理値

このオプションを有効にした場合、最新のエラーメッセージを 常にグローバル変数 $php_errormsg で参照することができます。

track_vars 論理値

このオプションを有効にした場合、GET、POST、クッキー入力は、 グローバル連想配列 $HTTP_GET_VARS$HTTP_POST_VARS$HTTP_COOKIE_VARS でそれぞれ参照することができます。

upload_tmp_dir 文字列

ファイルアップロード時にファイル保存に用いるテンポラリディレクトリ。 PHP の実行ユーザーが書きこみ可能である必要があります。

user_dir 文字列

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

warn_plus_overloading 論理値

このオプションが有効の場合、 PHP は、文字列中に (+) 演算子が使用されている 場合に警告を出力します。 これは、文字列結合演算子 (.) を替わりに用いて 書きなおす必要があるスクリプトを発見しやすくするためのものです。

メール設定用命令

SMTP 文字列

Windows 版の PHP が mail 関数による メールの送信に使用する SMTP サーバーの DNS 名または IP アドレス。

sendmail_from 文字列

Windows 版の PHP から送信するメールにおいて "From:" に使用するメールアドレス。

sendmail_path 文字列

sendmail プログラムがある場所。 通常は、 /usr/sbin/sendmail または、 /usr/lib/sendmail です。 configure が sendmail の場所を 探してくれますが、失敗する場合は、ここでそのパスをセットことが 可能です。

sendmail を使用していないシステムは、替わりに動作させるマシンの メールシステムが 提供する sendmail のラッパーまたは代替品をこの命令に指定する 必要があります。 例えば、 Qmail ユーザーは、 通常、この命令に /var/qmail/bin/sendmail をセットすることができます。

セーフモード設定用命令

safe_mode 論理値

PHP のセーフモードを有効にするかどうかを指定します。 更に詳細情報については、 セキュリティの章 を参照下さい。

safe_mode_exec_dir 文字列

PHP がセーフモードで動作している場合、システムプログラムを 実行する system および他の関数 は、このディレクトリにないプログラムの実行を拒否します。

デバッガー設定用命令

debugger.host 文字列

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

debugger.port 文字列

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

debugger.enabled 論理値

デバッガが有効かどうかを設定します。

拡張ロード命令

enable_dl 論理値

この命令は、Apache モジュール版の PHP を使用した場合にのみ 有用です。 PHP の動的ロード拡張機能を dl で 仮想サーバー毎またはディレクトリ毎にオンまたはオフに変更することが できます。

動的ロード機能をオフにするのは主としてセキュリティ上の理由によります。 動的ロード機能により、 safe_mode および open_basedir の拘束を全て無視することが 可能になります。

デフォルトでは、セーフモードを使用している場合以外、 動的ロードが可能です。 セーフモードにおいては、dl を使用することが常に不可能になります。

extension_dir 文字列

動的にロード可能な拡張モジュールを置くディレクトリを 指定します。

extension 文字列

PHP の起動時にロードされる動的にロード可能な拡張モジュールを 指定します。

MySQL 設定用命令

mysql.allow_persistent 論理値

継続的な MySQL 接続を許可するかどうかを指定します。

mysql.default_host string

ホスト名が省略された場合にデータベースサーバーへの接続時に 使用するデフォルトのサーバーホスト。

mysql.default_user string

ユーザー名が省略された場合にデータベースサーバーへの接続時に 使用するデフォルトのユーザー名。

mysql.default_password string

パスワードが省略された場合にデータベースサーバーへの接続時に 使用するデフォルトのパスワード。

mysql.max_persistent 整数

継続的な MySQL 接続のプロセス毎の最大数。

mysql.max_links 整数

継続的な接続を含む MySQL 接続のプロセス毎の最大数。

mSQL 設定用命令

msql.allow_persistent 論理値

継続的な mSQL 接続を許可するかどうかを指定します。

msql.max_persistent 整数

継続的な mSQL 接続のプロセス毎の最大数。

msql.max_links 整数

継続的な接続を含む mSQL 接続のプロセス毎の最大数。

Postgres 設定用命令

pgsql.allow_persistent 論理値

継続的な Postgres 接続を許可するかどうかを指定します。

pgsql.max_persistent 整数

継続的な Postgres 接続のプロセス毎の最大数。

pgsql.max_links 整数

継続的な接続を含む Postgres 接続のプロセス毎の最大数。

Sybase 設定用命令

sybase.allow_persistent 論理値

継続的な Sybase 接続を許可するかどうかを指定します。

sybase.max_persistent 整数

継続的な Sybase 接続のプロセス毎の最大数。

sybase.max_links 整数

継続的な接続を含む Sybase 接続のプロセス毎の最大数。

Sybase-CT 設定用命令

sybct.allow_persistent 論理値

継続的な Sybase-CT 接続を許可するかどうかを指定します。 デフォルトは、オンです。

sybct.max_persistent 整数

継続的な Sybase-CT 接続のプロセス毎の最大数。 デフォルトは、制限無しを意味する -1 です。

sybct.max_links 整数

継続的な接続を含む Sybase-CT 接続のプロセス毎の最大数。 デフォルトは、制限無しを意味する -1 です。

sybct.min_server_severity 整数

sybct.min_server_severity 以上の警告レベルを有する サーバーメッセージは、警告としてレポートされます。 この値は、スクリプトから sybase_min_server_severity を コールすることによりセットすることが可能です。 デフォルトでは、エラーをレポートする警告レベルは、 10 以上です。

sybct.min_client_severity 整数

警告レベルが、sybct.min_client_severity 以上の クライアントライブラリのメッセージは、警告としてレポートされます。 この値は、スクリプトから sybase_min_client_severity をコールする ことによりセットすることが可能です。 デフォルトは 10 であり、効率的にレポートを抑制して行うようにしています。

sybct.login_timeout 整数

接続を行う際に接続失敗を返すまでの最大の秒数。 ある接続がタイムアウトしようとした時に max_execution_time を超えた場合、接続失敗の処理を行う前に スクリプトは終了することに注意して下さい。 デフォルトは、一分です。

sybct.timeout integer

select_db またはクエリー命令を実行する際に実行失敗を 返す前の最大の秒数。 ある命令がタイムアウトした時に、max_execution_time を超えた場合、 動作失敗の処理を行う前にスクリプトは終了することに注意して下さい。 デフォルトは、制限無しです。

sybct.hostname 文字列

sp_who により表示される際に使用される接続元のホスト名。 デフォルトは、none です。

Informix 設定用ディレクティブ

ifx.allow_persistent boolean

持続的接続を許可するか否か

ifx.max_persistent integer

プロセス毎のInformix持続的接続の最大数

ifx.max_links integer

持続的接続を含む プロセス毎のInformix接続の最大数。

ifx.default_host string

ifx_connect または ifx_pconnect において ホスト名を省略した場合に接続するデフォルトのホスト。

ifx.default_user string

ifx_connect または ifx_pconnect において 省略した場合に使用するデフォルトのユーザーID。

ifx.default_password string

ifx_connect または ifx_pconnect において 省略した場合に使用するデフォルトのパスワード。

ifx.blobinfile boolean

ファイルに blob カラムを返したい場合に TRUE、 メモリに返したい場合に FALSEを設定します。 ifx_blobinfile_mode により 実行時に設定を上書きできます。

ifx.textasvarchar boolean

selectクエリーにおいてTEXTカラムを通常の文字列として返したい場合には TRUE、BLOB IDパラメータを使用したい場合はFALSEを設定します。 ifx_textasvarcharにより実行時に 設定を上書きできます。

ifx.byteasvarchar boolean

selectクエリーにおいてBYTEカラムを通常の文字列として返したい場合には TRUE、BLOB IDパラメータを使用したい場合はFALSEを設定します。 ifx_textasvarcharにより実行時に 設定を上書きできます。

ifx.charasvarchar boolean

CHARカラムを取得する際に末尾の空白文字を取り除きたい場合には、 TRUEを設定します。

ifx.nullformat boolean

NULLカラムをリテラル文字列"NULL"として返したい場合にはTRUE、 空の文字列""として返したい場合にはFALSEを設定します。 ifx_nullformatにより実行時に設定を 上書きできます。

BC Math 設定用命令

bcmath.scale 整数

全ての bcmath 関数で使用する 10 進桁数。

ブラウザ機能設定用命令

browscap 文字列

ブラウザ機能ファイルの名前。get_browser も参照下さい。 !

Unified ODBC 設定用命令

uodbc.default_db 文字列

odbc_connect または odbc_pconnect のどちらも指定されていない 場合に使用するODBC データソース。

uodbc.default_user 文字列

odbc_connect または odbc_pconnect のどちらも指定されていない 場合に使用するユーザ名。

uodbc.default_pw 文字列

odbc_connect または odbc_pconnect のどちらも指定されていない 場合に使用するパスワード。

uodbc.allow_persistent 論理値

継続的な ODBC 接続を許可するかどうか指定します。

uodbc.max_persistent integer

継続的な ODBC 接続のプロセス毎の最大数。

uodbc.max_links integer

継続的な接続を含む ODBC 接続のプロセス毎の最大数。

国際化(日本語)関数 設定用命令

i18n.http_input 文字列

HTTPからの入力コードを指定します。pass(無変換)またはauto (自動変換)を指定します。指定しない場合は、auto となります。

この設定は国際化機能を有効にしてPHPをコンパイルした場合にのみ有効です。

i18n.http_output 文字列

デフォルトのHTTP出力コードを指定します。 EUC,SJIS,JIS,UTF-8,pass(無変換)のどれかを指定します。 指定がない場合は無変換となります。 (内部コードがそのまま出力されます。)

この設定は国際化機能を有効にしてPHPをコンパイルした場合にのみ有効です。

i18n.internal_encoding 文字列

i18n.internal_encoding 内部コードを指定します。 EUC,SJIS,UTF-8 のどれかを指定します。

この設定は国際化機能を有効にしてPHPをコンパイルした場合にのみ有効です。

i18n.script_encoding 文字列

スクリプトファイル中のコードを指定します。EUC,SJIS,JIS,UTF-8, autoを指定します。auto (デフォルト)を指定した場合は、自動 判定を行います。

この設定は国際化機能を有効にしてPHPをコンパイルした場合にのみ有効です。