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
The default location of php.ini is a compile time option (see the FAQ entry), but can be changed
for the CGI and CLI version with the
-c command line switch, see the chapter about using
PHP from the command line. You can also use the
environment variable PHPRC for an additional path to
search for a php.ini file.
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.
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
the PHP directives are documented in the manual though. For a completel 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
Example 8-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"