設定を変更するには

ApacheモジュールとしてPHPを実行する

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

PHP 4.0 においては、PHP設定用の複数のApacheディレクティブがあり、 Apacheの設定ファイルでPHPの設定を変更可能です。どのディレクティブが、 PHP_INI_ALL か, PHP_INI_PERDIR, または PHP_INI_SYSTEM なのかについてのリストは、 ini_set() の説明を参照下さい。

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

php_value name value

指定した変数の値を設定します。PHP_INI_ALLPHP_INI_PERDIR ディレクティブでのみ利用可能です。 以前にセットされた値をクリアしたい場合は、none を 値として使用してください。

注意: ブーリアン値を設定するにあたり、php_value を 使わないようにしてください。代わりに、php_flag (下記を参照) を使ってください。

php_flag name on|off

論理値のオプション設定を変更するために使用します。 PHP_INI_PERDIR ディレクティブでのみ利用可能です。

php_admin_value name value

指定した変数の値を設定します。このディレクティブは、.htaccess ファイルでは利用できません。 php_admin_value で設定されたディレクティブの値は、.htaccess や バーチャルホストディレクティブ内から上書きできません。 以前にセットされた値をクリアしたい場合は、none を 値として使用してください。

php_admin_flag name on|off

論理値のオプションを設定するために使用されます。 このディレクティブは、.htaccess ファイルでは利用できません。 php_admin_value で設定されたディレクティブの値は、.htaccess や バーチャルホストディレクティブ内から上書きできません。

例 4-2. Apache 設定の例

<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>

注意

PHP定数はPHP以外では使用できません。例えば、 httpd.confの中で error_reporting ディレクティブを設定するために E_ALL または E_NOTICE のようなPHP定数を使用することは できません。これらは意味を有さないため、 0 と評価されてしまいます。 代わりに対応するビットマスクを使用して下さい。これらの定数は、 php.ini で使用することができます。

Changing PHP configuration via the Windows registry

When running PHP on Windows, the configuration values can be modified on per-directory basis using the Windows registry. The configuration values are stored in the registry key HKLM\SOFTWARE\PHP\Per Directory Values, in the sub-keys corresponding to the path names. For example, configuration values for the directory c:\inetpub\wwwroot would be stored in the key HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot. The settings for the directory would be active for any script running from this directory or any subdirectory of it. The values under the key should have the name of PHP configuration directive and the string value. PHP constants in the values would not be parsed.

PHPへの別のインターフェイス

PHP へのインターフェイスによらず、 ini_set()によりスクリプトの実行時ある種の値を 変更することができます。以下の表にどのレベルのディレクティブを設 定/変更できるかの概要を示します。

表 4-1. PHP_INI_* 定数の定義

定数意味
PHP_INI_USER1ユーザスクリプトで設定できるエントリ
PHP_INI_PERDIR2 php.ini, .htaccess および httpd.conf で設定できるエントリ
PHP_INI_SYSTEM4 php.ini または httpd.conf で設定できるエントリ
PHP_INI_ALL7どこでも設定できるエントリ

phpinfo()の出力で設定値を参照することができま す。また、ini_get() または get_cfg_var()により個々の設定値にアクセスする ことも可能です。