- Table of Contents
- The configuration file
The configuration file (called php3.ini in PHP 3.0, and simply php.ini
as of PHP 4.0) 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 version, it happens on every
invocation.
|
Example 3-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
magic_quotes_gpc = 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"
|
|
When using PHP as an Apache module, you can also change the configuration settings using
directives in Apache configuration files and .htaccess files.
With PHP 3.0, there are Apache directives that correspond to each configuration setting in
the php3.ini name, except the name is prefixed by "php3_".
With PHP 4.0, there are several Apache directives that allow you to change the PHP
configuration from within the Apache configuration file itself.
- php_value name value
-
This sets the value of the specified variable.
- php_flag name on|off
-
This is used to set a Boolean configuration option.
- php_admin_value name value
-
This sets the value of the specified variable. "Admin" configuration settings can only be
set from within the main Apache configuration files, and not from .htaccess files.
- php_admin_flag name on|off
-
This is used to set a Boolean configuration option.
|
Example 3-2. Apache configuration example
<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>
|
|
You can view the settings of the configuration values in the output of phpinfo(). You can also access the values of individial
configuration settings using get_cfg_var().
- allow_url_fopen boolean
-
This option enables the URL-aware fopen wrappers that enable accessing URL object like
files. Default wrappers are provided for the access of remote
files using the ftp or http protocol, some extensions like zlib may register additional
wrappers.
Note: This option was introduced immediately after the release of version 4.0.3. For
versions up to and including 4.0.3 you can only disable this feature at compile time by using the
configuration switch
--disable-url-fopen-wrapper.
- asp_tags boolean
-
Enables the use of ASP-like <% %> tags in addition to the usual <?php ?> tags.
This includes the variable-value printing shorthand of <%= $value %>. For more information,
see Escaping from HTML.
Note: Support for ASP-style tags was added in 3.0.4.
- auto_append_file string
-
Specifies the name of a file that is automatically parsed after the main file. The file is
included as if it was called with the include()
function, so include_path is used.
The special value none disables auto-appending.
Note: If the script is terminated with exit(),
auto-append will not occur.
- auto_prepend_file string
-
Specifies the name of a file that is automatically parsed before the main file. The
file is included as if it was called with the include()
function, so include_path is used.
The special value none disables auto-prepending.
- cgi_ext string
-
- display_errors boolean
-
This determines whether errors should be printed to the screen as part of the HTML output
or not.
- doc_root string
-
PHP's "root directory" on the server. Only used if non-empty. If PHP is configured with safe mode, no files outside this directory are
served.
- engine boolean
-
This directive is really only useful in the Apache module version of PHP. It is used by
sites that would like to turn PHP parsing on and off on a per-directory or per-virtual server
basis. By putting engine off in the appropriate places in the httpd.conf
file, PHP can be enabled or disabled.
- error_log string
-
Name of file where script errors should be logged. If the special value syslog is
used, the errors are sent to the system logger instead. On UNIX, this means syslog(3) and on
Windows NT it means the event log. The system logger is not supported on Windows 95.
- error_reporting integer
-
Set the error reporting level. The parameter is an integer representing a bit field. Add
the values of the error reporting levels you want.
Table 3-1. Error Reporting Levels
| bit value |
enabled reporting |
| 1 |
normal errors |
| 2 |
normal warnings |
| 4 |
parser errors |
| 8 |
non-critical style-related warnings |
The default value for this directive is 7 (normal errors, normal warnings and parser errors are
shown).
- html_errors boolean
-
Turn off HTML tags in error messages.
- open_basedir string
-
Limit the files that can be opened by PHP to the specified directory-tree.
When a script tries to open a file with, for example, fopen or gzopen, the location of the
file is checked. When the file is outside the specified directory-tree, PHP will refuse to open it.
All symbolic links are resolved, so it's not possible to avoid this restriction with a symlink.
The special value . indicates that the directory in which the script is
stored will be used as base-directory.
Under Windows, separate the directories with a semicolon. On all other systems, separate
the directories with a colon. As an Apache module, open_basedir paths from parent directories are
now automatically inherited.
Note: Support for multiple directories was added in 3.0.7.
The default is to allow all files to be opened.
- gpc_order string
-
Set the order of GET/POST/COOKIE variable parsing. The default setting of this directive
is "GPC". Setting this to "GP", for example, will cause PHP to completely ignore cookies and to
overwrite any GET method variables with POST-method variables of the same name.
Note, that this option is not available in PHP 4. Use variables_order instead.
- variables_order string
-
Set the order of the EGPCS (Environment, GET, POST, Cookie, Server) variable parsing. The
default setting of this directive is "EGPCS". Setting this to "GP", for example, will cause PHP to
completely ignore environment variables, cookies and server variables, and to overwrite any GET
method variables with POST-method variables of the same name.
See also register_globals.
- ignore_user_abort string
-
On by default. If changed to Off scripts will be terminated as soon as they try to output
something after a client has aborted their connection.
ignore_user_abort().
- include_path string
-
Specifies a list of directories where the
require(), include() and
fopen_with_path() functions look for files. The format is like the system's PATH
environment variable: a list of directories separated with a colon in UNIX or semicolon in
Windows.
|
Example 3-3. UNIX include_path
include_path=.:/home/httpd/php-lib
|
|
|
Example 3-4. Windows include_path
include_path=".;c:\www\phplib"
|
|
The default value for this directive is . (only the current directory).
- isapi_ext string
-
- log_errors boolean
-
Tells whether script error messages should be logged to the server's error log. This
option is thus server-specific.
- magic_quotes_gpc boolean
-
Sets the magic_quotes state for GPC (Get/Post/Cookie) operations. When magic_quotes are
on, all ' (single-quote), " (double quote), \ (backslash) and NUL's are escaped with a backslash
automatically. If magic_quotes_sybase is also on, a single-quote is escaped with a single-quote
instead of a backslash.
- magic_quotes_runtime boolean
-
If magic_quotes_runtime is enabled, most functions that return data from
any sort of external source including databases and text files will have quotes escaped with a
backslash. If magic_quotes_sybase is also on, a single-quote is escaped with a
single-quote instead of a backslash.
- magic_quotes_sybase boolean
-
If magic_quotes_sybase is also on, a single-quote is escaped with a
single-quote instead of a backslash if magic_quotes_gpc or
magic_quotes_runtime is enabled.
- max_execution_time integer
-
This sets the maximum time in seconds a script is allowed to run before it is terminated
by the parser. This helps prevent poorly written scripts from tying up the server. The default
setting is 30.
The maximum execution time is not affected by system calls, the sleep() function, etc. Please see the set_time_limit() function for more details.
- memory_limit integer
-
This sets the maximum amount of memory in bytes that a script is allowed to allocate. This
helps prevent poorly written scripts for eating up all available memory on a server.
- nsapi_ext string
-
- precision integer
-
The number of significant digits displayed in floating point numbers.
- register_globals boolean
-
Tells whether or not to register the EGPCS (Environment, GET, POST, Cookie, Server)
variables as global variables. You may want to turn this off if you don't want to clutter your
scripts' global scope with user data. This makes the most sense when coupled with track_vars - in which case you can access all of the EGPCS
variables through the $HTTP_ENV_VARS, $HTTP_GET_VARS, $HTTP_POST_VARS,
$HTTP_COOKIE_VARS, and $HTTP_SERVER_VARS arrays in the global scope.
Please note that you need to set AllowOveride All in your Directory block in the apache
configfile for this to work.
- short_open_tag boolean
-
Tells whether the short form (<? ?>) of PHP's open tag should be
allowed. If you want to use PHP in combination with XML, you have to disable this option. If
disabled, you must use the long form of the open tag (<?php ?>).
- sql.safe_mode boolean
-
- track_errors boolean
-
If enabled, the last error message will always be present in the global variable
$php_errormsg.
- track_vars boolean
-
If enabled, then Environment, GET, POST, Cookie, and Server variables can be found in the
global associative arrays $HTTP_ENV_VARS, $HTTP_GET_VARS,
$HTTP_POST_VARS, $HTTP_COOKIE_VARS, and $HTTP_SERVER_VARS.
Note that as of PHP 4.0.3, track_vars is always turned on.
- upload_tmp_dir string
-
The temporary directory used for storing files when doing file upload. Must be writable by
whatever user PHP is running as.
- upload_max_filesize integer
-
The maximum size of an uploaded file. The value is in bytes.
- user_dir string
-
The base name of the directory used on a user's home directory for PHP files, for example
public_html.
- warn_plus_overloading boolean
-
If enabled, this option makes PHP output a warning when the plus (+) operator is
used on strings. This is to make it easier to find scripts that need to be rewritten to using the
string concatenator instead (.).
- safe_mode boolean
-
Whether to enable PHP's safe mode. Read the Security and Safe Mode chapters for more information.
- safe_mode_exec_dir string
-
If PHP is used in safe mode, system() and the
other functions executing system programs refuse to start programs that are not in this
directory.
- debugger.host string
-
DNS name or IP address of host used by the debugger.
- debugger.port string
-
Port number used by the debugger.
- debugger.enabled boolean
-
Whether the debugger is enabled.
- enable_dl boolean
-
This directive is really only useful in the Apache module version of PHP. You can turn
dynamic loading of PHP extensions with dl() on and off per
virtual server or per directory.
The main reason for turning dynamic loading off is security. With dynamic loading, it's
possible to ignore all the safe_mode and open_basedir restrictions.
The default is to allow dynamic loading, except when using safe-mode. In safe-mode, it's
always imposible to use dl().
- extension_dir string
-
In what directory PHP should look for dynamically loadable extensions.
- extension string
-
Which dynamically loadable extensions to load when PHP starts up.
- mysql.allow_persistent boolean
-
Whether to allow persistent MySQL connections.
- mysql.default_host string
-
The default server host to use when connecting to the database server if no other host is
specified.
- mysql.default_user string
-
The default user name to use when connecting to the database server if no other name is
specified.
- mysql.default_password string
-
The default password to use when connecting to the database server if no other password is
specified.
- mysql.default_port string
-
The default TCP port number to use when connecting to the database server if no other port
is specified. If no default is specified, the port will be obtained from the
MYSQL_TCP_PORT environment variable, the mysql-tcp entry in /etc/services or
the compile-time MYSQL_PORT constant, in that order. Win32 will only use the
MYSQL_PORT constant.
- mysql.default_socket string
-
The default socket name to use when connecting to a local database server if no other
socket name is specified.
- mysql.max_persistent integer
-
The maximum number of persistent MySQL connections per process.
- mysql.max_links integer
-
The maximum number of MySQL connections per process, including persistent connections.
- msql.allow_persistent boolean
-
Whether to allow persistent mSQL connections.
- msql.max_persistent integer
-
The maximum number of persistent mSQL connections per process.
- msql.max_links integer
-
The maximum number of mSQL connections per process, including persistent connections.
- pgsql.allow_persistent boolean
-
Whether to allow persistent Postgres connections.
- pgsql.max_persistent integer
-
The maximum number of persistent Postgres connections per process.
- pgsql.max_links integer
-
The maximum number of Postgres connections per process, including persistent
connections.
- sesam_oml string
-
Name of BS2000 PLAM library containing the loadable SESAM driver modules. Required for
using SESAM functions. The BS2000 PLAM library must be set ACCESS=READ,SHARE=YES because it must be
readable by the apache server's user id.
- sesam_configfile string
-
Name of SESAM application configuration file. Required for using SESAM functions. The
BS2000 file must be readable by the apache server's user id.
The application configuration file will usually contain a configuration like (see SESAM
reference manual):
- sesam_messagecatalog string
-
Name of SESAM message catalog file. In most cases, this directive is not neccessary. Only
if the SESAM message file is not installed in the system's BS2000 message file table, it can be set
with this directive.
The message catalog must be set ACCESS=READ,SHARE=YES because it must be readable by the
apache server's user id.
- sybase.allow_persistent boolean
-
Whether to allow persistent Sybase connections.
- sybase.max_persistent integer
-
The maximum number of persistent Sybase connections per process.
- sybase.max_links integer
-
The maximum number of Sybase connections per process, including persistent
connections.
- sybct.allow_persistent boolean
-
Whether to allow persistent Sybase-CT connections. The default is on.
- sybct.max_persistent integer
-
The maximum number of persistent Sybase-CT connections per process. The default is -1
meaning unlimited.
- sybct.max_links integer
-
The maximum number of Sybase-CT connections per process, including persistent connections.
The default is -1 meaning unlimited.
- sybct.min_server_severity integer
-
Server messages with severity greater than or equal to sybct.min_server_severity will be
reported as warnings. This value can also be set from a script by calling sybase_min_server_severity(). The default is
10 which reports errors of information severity or greater.
- sybct.min_client_severity integer
-
Client library messages with severity greater than or equal to sybct.min_client_severity
will be reported as warnings. This value can also be set from a script by calling sybase_min_client_severity(). The default is
10 which effectively disables reporting.
- sybct.login_timeout integer
-
The maximum time in seconds to wait for a connection attempt to succeed before returning
failure. Note that if max_execution_time has been exceeded when a connection attempt times out,
your script will be terminated before it can take action on failure. The default is one minute.
- sybct.timeout integer
-
The maximum time in seconds to wait for a select_db or query operation to succeed before
returning failure. Note that if max_execution_time has been exceeded when am operation times out,
your script will be terminated before it can take action on failure. The default is no limit.
- sybct.hostname string
-
The name of the host you claim to be connecting from, for display by sp_who. The default
is none.
- ifx.allow_persistent boolean
-
Whether to allow persistent Informix connections.
- ifx.max_persistent integer
-
The maximum number of persistent Informix connections per process.
- ifx.max_links integer
-
The maximum number of Informix connections per process, including persistent
connections.
- ifx.default_host string
-
The default host to connect to when no host is specified in ifx_connect() or
ifx_pconnect().
- ifx.default_user string
-
The default user id to use when none is specified in
ifx_connect() or ifx_pconnect().
- ifx.default_password string
-
The default password to use when none is specified in
ifx_connect() or ifx_pconnect().
- ifx.blobinfile boolean
-
Set to TRUE if you want to return blob columns in a file,
FALSE if you want them in memory. You can override the setting at runtime with ifx_blobinfile_mode().
- ifx.textasvarchar boolean
-
Set to TRUE if you want to return TEXT columns as normal strings in select
statements, FALSE if you want to use blob id parameters. You can override the
setting at runtime with
ifx_textasvarchar().
- ifx.byteasvarchar boolean
-
Set to TRUE if you want to return BYTE columns as normal strings in select
queries, FALSE if you want to use blob id parameters. You can override the setting
at runtime with ifx_textasvarchar().
- ifx.charasvarchar boolean
-
Set to TRUE if you want to trim trailing spaces from CHAR columns when
fetching them.
- ifx.nullformat boolean
-
Set to TRUE if you want to return NULL columns as the
literal string "NULL", FALSE if you want them returned as the empty
string "". You can override this setting at runtime with
ifx_nullformat().
- bcmath.scale integer
-
Number of decimal digits for all bcmath functions.
- browscap string
-
Name of browser capabilities file. See also
get_browser().
- uodbc.default_db string
-
ODBC data source to use if none is specified in
odbc_connect() or odbc_pconnect().
- uodbc.default_user string
-
User name to use if none is specified in
odbc_connect() or odbc_pconnect().
- uodbc.default_pw string
-
Password to use if none is specified in
odbc_connect() or odbc_pconnect().
- uodbc.allow_persistent boolean
-
Whether to allow persistent ODBC connections.
- uodbc.max_persistent integer
-
The maximum number of persistent ODBC connections per process.
- uodbc.max_links integer
-
The maximum number of ODBC connections per process, including persistent connections.
- mbstring.internal_encoding string
-
mbstring.internal_encoding defines default internal character encoding.
- mbstring.http_input string
-
mbstring.http_input defines default HTTP input character encoding.
- mbstring.http_output string
-
mbstring.http_output defines default HTTP output character encoding.
- mbstring.detect_order string
-
mbstring.detect_order defines default character encoding detection order.
- mbstring.substitute_character
string
-
mbstring.substitute_character defines character to substitute for invalid
character codes.
|