The configuration file (called php3.ini in
PHP 3, and simply php.ini as of PHP 4)
is read when PHP starts up. For the server module versions of PHP,
this happens only once when the web server is started. For the
CGI and CLI version, it happens on
every invocation.
php.ini is searched in these locations (in order):
SAPI module specific location (PHPIniDir directive
in Apache 2, -c command line option in CGI and CLI,
php_ini parameter in NSAPI,
PHP_INI_PATH environment variable in THTTPD)
HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath
(Windows Registry location)
The PHPRC environment variable
Current working directory (for CLI)
The web server's directory (for SAPI modules), or directory of PHP
(otherwise in Windows)
Windows directory (C:\windows
or C:\winnt) (for Windows), or
--with-config-file-path compile time option
If php-SAPI.ini exists (where SAPI is used SAPI, so the
filename is e.g. php-cli.ini or
php-apache.ini), it's used instead of php.ini.
SAPI name can be determined by php_sapi_name().
Note:
The Apache web server changes the directory to root at startup causing
PHP to attempt to read php.ini from the root filesystem if it exists.
The php.ini directives handled by extensions are documented respectively
on the pages of the extensions themselves. The list of
the core directives is available in the appendix. Probably not all
PHP directives are documented in the manual though. For a complete list
of directives available in your PHP version, please read your well commented
php.ini file. Alternatively, you may find the
the latest php.ini from CVS
helpful too.
Example 9-1. php.ini example ; any text on a line after an unquoted semicolon (;) is ignored
[php] ; section markers (text within square brackets) are also ignored
; Boolean values can be set to either:
; true, on, yes
; or false, off, no, none
register_globals = off
track_errors = yes
; you can enclose strings in double-quotes
include_path = ".:/usr/local/lib/php"
; backslashes are treated the same as any other character
include_path = ".;c:\php\lib" |
|
Since PHP 5.1.0, it is possible to refer to existing .ini variables from
within .ini files. Example: open_basedir = ${open_basedir}
":/new/dir".