Javascript debugger
Website design
↑
Table of Contents
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)
The PHPRC
environment variable. Before PHP 5.2.0
this was checked after the registry key mentioned below.
As of PHP 5.2.0, the following registry locations are searched in
order:
HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z\IniFilePath
,
HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y\IniFilePath
and
HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x\IniFilePath
, where
x, y and z mean the PHP major, minor and release versions.
HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath
(Windows Registry location)
Current working directory (except 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().
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.
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"
.