第 3 章 設定

目次
設定ファイル

設定ファイル

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

例 3-1php.iniの例

; 引用符をつけないセミコロン(;)の後のテキストは全て無視されます。
[php] ; セクションマーカ (角括弧の中のテキスト) は無視されます
; 論理値は次のどれかとなります:
;    true, on, yes
; または false, off, no, none
register_globals = off
magic_quotes_gpc = yes

; 文字列を二重引用符で括ることも可能です
include_path = ".:/usr/local/lib/php"

; バックスラッシュは他の文字と同様に処理されます
include_path = ".;c:\php\lib"

PHP を Apache モジュールとして使用する場合、Apache用設定ファイルや .htaccess ファイルに命令を記述することによりPHPの設定を行うことが 可能です(ただし、"AllowOverride Options" もしくは "AllowOverride All" が設定されている必要があります)。

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

PHP 4.0 においては、PHP設定用の複数のApacheディレクティブがあり、 Apacheの設定ファイルでPHPの設定を変更可能です。

php_value name value

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

php_flag name on|off

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

php_admin_value name value

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

php_admin_flag name on|off

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

例 3-2Apache 設定の例

<IfModule mod_php4.c>
  php_value include_path ".:/usr/local/lib/php"
  php_flag safe_mode on
</IfModule>
<IfModule mod_php3.c>
  php3_include_path ".:/usr/local/lib/php"
  php3_safe_mode on
</IfModule>

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

一般的な設定用の命令

allow_url_fopen 論理値

このオプションは、ファイルのようなURLオブジェクトをアクセスす ることを可能にするURL対応のfopenラッパーを利用可能にします。 デフォルトのラッパーは、ftp または http プロトコルを使用して リモートファイルをア クセスする用途に対応しており、zlib のようないくつかの拡張によ り追加のラッパを登録可能です。

注意 このオプションは、バージョン 4.0.3 のリリース直後に導入され ました。4.0.3 までのバージョンでは、この機能を設定スイッチ --disable-url-fopen-wrapper を使用してコンパイル時にのみ無効にすることが可能です。

asp_tags 論理値

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

注意ASP形式のタグは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 ファイルの適当な場所に engine off などと書くことにより、 PHP は有効または無効となります。

error_log 文字列

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

error_reporting 整数

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

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

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

html_errors 論理値

エラーメッセージでHTMLタグを出力しない。

open_basedir 文字列

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

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

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

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

open_basedirで指定される値は、実際にはディレクトリ名ではなく プレフィクスとして機能します。つまり"open_basedir = /dir/incl" と指定した場合には"/dir/include"や"/dir/incls"にもアクセスする ことができます。特定のディレクトリ以下にアクセスを制限したい 場合は、指定するディレクトリ名をスラッシュで終了させてください。 例えば:"open_basedir = /dir/incl/" のようにします。

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

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

gpc_order 文字列

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

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

variables_order 文字列

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

register_globals も参照下さい。

ignore_user_abort 文字列

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

include_path 文字列

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

例 3-3UNIX include_path

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

例 3-4Windows include_path

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

isapi_ext 文字列

log_errors 論理値

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

magic_quotes_gpc 論理値

GPC(Get/Post/Cookie)処理に関するmagic_quotesの設定を行います。 magic_quotesがonの場合、'(シングルクオート)、"(ダブルク オート)、\(バックスラッシュ) 、NULLには全て自動的にバックスラッ シュでエスケープ処理が行われます。magic_quotes_sybaseもonの場 合、シングルクオートは、バックスラッシュではなくシングルクオー トでエスケープされます。

magic_quotes_runtime 論理値

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

magic_quotes_sybase 論理値

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

max_execution_time 整数

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

最大実行時間は、システムコール、sleep()関 数等の影響を受けません。より詳細な情報については、 set_time_limit()関数の説明を参照下さい。

memory_limit 整数

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

nsapi_ext 文字列

precision 整数

浮動小数点数使用時に有効な桁数を指定します。

register_argc_argv 論理値

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

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

register_globals 論理値

EGPCS(Environment, GET, POST, Cookie, Server)変数をグローバル 変数として登録するかどうかを指定します。使用するスクリプトの グローバルスコープをユーザのデータで混乱させられたくない場合 には、このオプションをoffにしたいと思うかかもしれません。この オプションは、track_varsと組み合わせた場合 に最も意味があります。この場合、全てのEGPCS変数にグローバル変 数の配列$HTTP_ENV_VARS, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, $HTTP_SERVER_VARSを通じてアクセス可能です。

これを動作させるには、Apacheの設定ファイルのDirectoryブロック にAllowOveride Allと設定する必要があることに注意して下さい。

short_open_tag 論理値

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

sql.safe_mode 論理値

track_errors 論理値

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

track_vars 論理値

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

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

upload_tmp_dir 文字列

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

upload_max_filesize 整数

アップロードされるファイルの最大の大きさ。値は、バイト単位 です。

user_dir 文字列

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

warn_plus_overloading 論理値

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

セーフモード設定用命令

safe_mode 論理値

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

safe_mode_exec_dir 文字列

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

デバッガー設定用命令

debugger.host 文字列

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

debugger.port 文字列

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

debugger.enabled 論理値

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

拡張ロード命令

enable_dl 論理値

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

動的ロード機能をオフにするのは主としてセキュリティ上の理由によ ります。動的ロード機能により、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.default_port string

ポートを指定せずにデータベースサーバに接続を行う際に使用される デフォルトのTCPポート番号。デフォルト値が指定されない場合、ポー トは、環境変数MYSQL_TCP_PORT/etc/servicesmysql-tcpエントリ、コンパイル時の MYSQL_PORT定数の順番で取得されます。Win32で は、MYSQL_PORT定数のみが使用されます。

mysql.default_socket 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接続のプロセス毎の最大数。

SESAM 設定ディレクティブ

sesam_oml string

ロード可能なSESAMドライバモジュールを含むBS2000 PLAM ライブラ リの名前。SESAM関数を使用する際に必要。BS2000 PLAMライブラリは、 ACCESS=READ,SHARE=YES に設定する必要があります。これは、Apache サーバのユーザIDにより読み込み可能とする必要があるためです。

sesam_configfile string

SESAMアプリケーション設定ファイルの名前。SESAM関数を使用する際 に必要。BS2000 ファイルは、ApacheのユーザIDにより読み込み可と する必要があります。

アプリケーション設定ファイルは、通常、次のような設定を有してい ます。(SESAMリファレンスを参照)

CNF=B
NAM=K
NOTYPE

sesam_messagecatalog string

SESAMメッセージカタログファイルの名前。多くの場合、このディレ クティブは不要です。SESAMメッセージファイルがシステムのBS2000 メッセージファイルテーブルにインストールされていない場合にのみ このディレクティブを設定することが可能です。

メッセージカタログは、ACCESS=READ,SHARE=YES に設定する必要があ ります。これは、Apache サーバのユーザIDから読み込み可能とする 必要があります。

Sybase 設定用命令

sybase.allow_persistent 論理値

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

sybase.max_persistent 整数

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

sybase.max_links 整数

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

Sybase-CT 設定用命令

sybct.allow_persistent 論理値

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

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を超えた場合、接続失敗 の処理を行う前にスクリプトは終了することに注意して下さい。デフォ ルトは、1分です。

sybct.timeout integer

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

sybct.hostname 文字列

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

Informix 設定用ディレクティブ

ifx.allow_persistent 論理値

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

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 論理値

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

ifx.textasvarchar 論理値

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

ifx.byteasvarchar 論理値

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

ifx.charasvarchar 論理値

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

ifx.nullformat 論理値

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接続のプロセス毎の最大数。

マルチバイト文字列設定用ディレクティブ

mbstring.internal_encoding string

mbstring.internal_encoding は、内部文字エン コーディングのデフォルト値を定義します。(PHP-4.0.6以降)

mbstring.http_input string

mbstring.http_input は、HTTP入力エンコーディ ングのデフォルト値を定義します。(PHP-4.0.6以降)

mbstring.http_output string

mbstring.http_output は、HTTP出力エンコーディ ングのデフォルト値を定義します。(PHP-4.0.6以降)

mbstring.detect_order string

mbstring.detect_orderは、文字エンコーディン グ検出の順位のデフォルト値を定義します。(PHP-4.0.6以降)

mbstring.substitute_character string

mbstring.substitute_character は、無効な文 字コードに関する代替文字を定義します。(PHP-4.0.6以降)