php-doc-en/chapters/config.xml
Marcus Boerger 6aea793008 docref_root and docref_ext
git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@92302 c90b9560-bf6c-de11-be94-00142212c4b1
2002-08-16 17:28:06 +00:00

1846 lines
57 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.72 $ -->
<chapter id="configuration">
<title>Configuration</title>
<sect1 id="configuration.file">
<title>The configuration file</title>
<simpara>
The configuration file (called <filename>php3.ini</filename> 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
<acronym>CGI</acronym> and <acronym>CLI</acronym> version, it happens on
every invocation.
</simpara>
<para>
The default location of &php.ini; is a compile time option (see the <link
linkend="faq.installation.phpini">FAQ</link> entry), but can be changed
for the <acronym>CGI</acronym> and <acronym>CLI</acronym> version with the
<literal>-c</literal> command line switch, see the chapter about using
<literal>PHP</literal> from the <link
linkend="features.commandline">command line</link>. You can also use the
environment variable <literal>PHPRC</literal> for an additionaly path to
search for &php.ini;.
</para>
<para>
Not every PHP directive is documented below. For a list of all directives,
please read your well commented &php.ini; file. You may want to view the
latest <ulink url="&url.php.cvs.phpini;">php.ini here</ulink> from CVS.
</para>
<note>
<para>
The default value for the PHP directive
<link linkend="ini.register-globals">register_globals</link> changed from
<emphasis>on</emphasis> to <emphasis>off</emphasis> in PHP
<ulink url="&url.php.release4.2.0;">4.2.0</ulink>.
</para>
</note>
<para>
<example>
<title>&php.ini; example</title>
<programlisting role="ini">
<![CDATA[
; 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"
]]>
</programlisting>
<!-- TODO: add more details about values and expressions -->
</example>
</para>
<simpara>
When using PHP as an Apache module, you can also change the
configuration settings using directives in Apache configuration
files and .htaccess files (You will need "AllowOverride
Options" or "AllowOverride All" privileges)
</simpara>
<simpara>
With PHP 3.0, there are Apache directives that correspond to each
configuration setting in the <filename>php3.ini</filename> name,
except the name is prefixed by "php3_".
</simpara>
<para>
With PHP 4.0, there are several Apache directives that allow you
to change the PHP configuration from within the Apache
configuration file itself.
<variablelist>
<varlistentry>
<term>
<systemitem role="directive">php_value</systemitem>
<parameter>name</parameter>
<parameter>value</parameter>
</term>
<listitem>
<para>
This sets the value of the specified variable.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<systemitem role="directive">php_flag</systemitem>
<parameter>name</parameter>
<parameter>on|off</parameter>
</term>
<listitem>
<para>
This is used to set a Boolean configuration option.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<systemitem role="directive">php_admin_value</systemitem>
<parameter>name</parameter>
<parameter>value</parameter>
</term>
<listitem>
<para>
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.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<systemitem role="directive">php_admin_flag</systemitem>
<parameter>name</parameter>
<parameter>on|off</parameter>
</term>
<listitem>
<para>
This is used to set a Boolean configuration option.</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para>
<example>
<title>Apache configuration example</title>
<programlisting role="ini">
<![CDATA[
<IfModule mod_php4.c>
php_value include_path ".:/usr/local/lib/php"
php_admin_flag safe_mode on
</IfModule>
<IfModule mod_php3.c>
php3_include_path ".:/usr/local/lib/php"
php3_safe_mode on
</IfModule>
]]>
</programlisting>
</example>
<note>
<para>
PHP constants do not exist outside of PHP. For example, in
<filename>httpd.conf</filename> do not use PHP constants
such as <constant>E_ALL</constant> or <constant>E_NOTICE</constant>
to set the <link linkend="ini.error-reporting">error_reporting</link>
directive as they will have no meaning and will evaluate to
<emphasis>0</emphasis>. Use the associated bitmask values instead.
These constants can be used in &php.ini;
</para>
</note>
</para>
<simpara>
You can view the settings of the configuration values in
the output of <function>phpinfo</function>. You can also
access the values of individual configuration settings using
<function>ini_get</function> or <function>get_cfg_var</function>.
</simpara>
<sect2 id="ini.sect.general">
<title>General Configuration Directives</title>
<para>
<variablelist>
<varlistentry id="ini.allow-url-fopen">
<term>
<parameter>allow_url_fopen</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
This option enables the URL-aware fopen wrappers that enable
accessing URL object like files. Default wrappers are provided for
the access of <link linkend="features.remote-files">remote files</link>
using the ftp or http protocol, some extensions like zlib may
register additional wrappers.
</para>
<note>
<para>
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
<link linkend="install.configure.disable-url-fopen-wrapper"><parameter>
--disable-url-fopen-wrapper</parameter></link>.
</para>
</note>
<warning>
<para>
On Windows, the following functions do not support remote file
accesing: <function>include</function>,
<function>include_once</function>, <function>require</function> and
<function>require_once</function>.
</para>
</warning>
</listitem>
</varlistentry>
<varlistentry id="ini.asp-tags">
<term>
<parameter>asp_tags</parameter>
<type>boolean</type>
</term>
<listitem>
<simpara>
Enables the use of ASP-like &lt;% %&gt; tags in addition to
the usual &lt;?php ?&gt; tags. This includes the
variable-value printing shorthand of &lt;%= $value %&gt;. For
more information, see <link
linkend="language.basic-syntax.phpmode">Escaping from HTML</link>.
</simpara>
<note>
<para>
Support for ASP-style tags was added in 3.0.4.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry id="ini.auto-append-file">
<term>
<parameter>auto_append_file</parameter>
<type>string</type>
</term>
<listitem>
<para>
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 <function>include</function> function, so
<link linkend="ini.include-path">include_path</link> is used.</para>
<para>
The special value <systemitem class="constant">none</systemitem>
disables auto-appending.
<note>
<simpara>
If the script is terminated with <function>exit</function>,
auto-append will <emphasis>not</emphasis> occur.</simpara>
</note>
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.auto-prepend-file">
<term>
<parameter>auto_prepend_file</parameter>
<type>string</type>
</term>
<listitem>
<para>
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 <function>include</function> function, so
<link linkend="ini.include-path">include_path</link> is used.</para>
<para>
The special value <systemitem class="constant">none</systemitem>
disables auto-prepending.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.disable-functions">
<term>
<parameter>disable_functions</parameter>
<type>string</type>
</term>
<listitem>
<simpara>
This directive allows you to disable certain functions for
<link linkend="security">security</link> reasons. It takes
on a comma-dilimited list of function names. disable_functions
is not affected by <link linkend="ini.safe-mode">Safe Mode</link>.
</simpara>
<simpara>
This directive must be set in &php.ini; For example, you
cannot set this in <filename>httpd.conf</filename>.
</simpara>
</listitem>
</varlistentry>
<varlistentry id="ini.display-errors">
<term>
<parameter>display_errors</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
This determines whether errors should be printed to the screen
as part of the HTML output or not.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.doc-root">
<term>
<parameter>doc_root</parameter>
<type>string</type>
</term>
<listitem>
<para>
PHP's "root directory" on the server. Only used if
non-empty. If PHP is configured with <link
linkend="ini.safe-mode">safe mode</link>, no files outside
this directory are served.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.engine">
<term>
<parameter>engine</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
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 <userinput>engine
off</userinput> in the appropriate places in the
<filename>httpd.conf</filename> file, PHP can be enabled or
disabled.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.error-log">
<term>
<parameter>error_log</parameter>
<type>string</type>
</term>
<listitem>
<para>
Name of file where script errors should be logged. If the
special value <literal>syslog</literal> 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.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.error-reporting">
<term>
<parameter>error_reporting</parameter>
<type>integer</type>
</term>
<listitem>
<para>
Set the error reporting level. The parameter is either an integer
representing a bit field, or named constants. The error_reporting
levels and constants are described in the
<link linkend="features.error-handling">Error Handling</link> section
of the manual, and in &php.ini;. To set at runtime, use the
<function>error_reporting</function> function. See also the
<link linkend="ini.display-errors">display_errors</link> directive.
</para>
<para>
The default value does not show <constant>E_NOTICE</constant> level
errors. You may want to show them during development.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.file-uploads">
<term>
<parameter>file_uploads</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Whether or not to allow HTTP
<link linkend="features.file-upload">file uploads</link>. See also
the
<link linkend="ini.upload-max-filesize">upload_max_filesize</link>,
<link linkend="ini.upload-tmp-dir">upload_tmp_dir</link>, and
<link linkend="ini.post-max-size">post_max_size</link> directives.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.html-errors">
<term>
<parameter>html_errors</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Turn off HTML tags in error messages. The new format for html errors produces
clickable messages that direct the user to a page describing the error or
function in causing the error. These references are affected by
<link linkend="ini.docref-root">docref_root</link> and
<link linkend="ini.docref-ext">docref_ext</link>.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.docref-root">
<term>
<parameter>docref_root</parameter>
<type>string</type>
</term>
<listitem>
<para>
The new error format contains a reference to a page describing the error or
function in causing the error. In case of manual pages you can download the
manual in your language and set this ini directive to the url of your local
copy. If your local copy of the manual can be reached by '/manual/' you can
simply use <userinput>docref_root=/manual/</userinput>. Additional you have
to set docref_ext to match the fileextensions of your copy
<userinput>docref_ext=.html</userinput>. It is possible to use external
references. For example you can use
<userinput>docref_root=http://manual/en/</userinput>.
</para>
<note>
<para>
The value of docref_root must end with a slash '/'.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry id="ini.docref-ext">
<term>
<parameter>docref_ext</parameter>
<type>string</type>
</term>
<listitem>
<para>
See <link linkend="ini.docref-root">docref_root</link>.
</para>
<note>
<para>
The value of docref_ext must begin with a dot '.'.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry id="ini.open-basedir">
<term>
<parameter>open_basedir</parameter>
<type>string</type>
</term>
<listitem>
<para>
Limit the files that can be opened by PHP to the specified
directory-tree.
</para>
<para>
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.
</para>
<para>
The special value <systemitem class="constant">.</systemitem>
indicates that the directory in which the script is stored will
be used as base-directory.
</para>
<para>
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.
</para>
<para>
The restriction specified with open_basedir is actually a
prefix, not a directory name. This means that "open_basedir =
/dir/incl" also allows access to "/dir/include" and
"/dir/incls" if they exist. When you want to restrict access
to only the specified directory, end with a slash. For example:
"open_basedir = /dir/incl/"
</para>
<note>
<para>
Support for multiple directories was added in 3.0.7.
</para>
</note>
<para>
The default is to allow all files to be opened.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.gpc-order">
<term>
<parameter>gpc_order</parameter>
<type>string</type>
</term>
<listitem>
<para>
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.
</para>
<para>
Note, that this option is not available in PHP 4.
Use <link linkend="ini.variables-order">variables_order</link>
instead.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.variables-order">
<term>
<parameter>variables_order</parameter>
<type>string</type>
</term>
<listitem>
<para>
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.
</para>
<para>
See also <link linkend="ini.register-globals">register_globals</link>.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.ignore-user-abort">
<term>
<parameter>ignore_user_abort</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
&true; by default. If changed to &false; scripts will be terminated
as soon as they try to output something after a client has aborted
their connection.
</para>
<para>
See also <function>ignore_user_abort</function>.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.implicit-flush">
<term>
<parameter>implicit_flush</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
&false; by default. Changing this to &true; tells PHP to tell the
output layer to flush itself automatically after every output block.
This is equivalent to calling the <literal>PHP</literal> function
<function>flush</function> after each and every call to
<function>print</function> or <function>echo</function> and each and
every <literal>HTML</literal> block.
</para>
<para>
When using <literal>PHP</literal> within an web environment, turning
this option on has serious performance implications and is generally
recommended for debugging purposes only. This value defaults to
&true; when operating under the <literal>CLI SAPI</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.include-path">
<term>
<parameter>include_path</parameter>
<type>string</type>
</term>
<listitem>
<para>
Specifies a list of directories where the
<function>require</function>, <function>include</function>
and <function>fopen_with_path</function> functions look for
files. The format is like the system's <envar>PATH</envar>
environment variable: a list of directories separated with a
colon in UNIX or semicolon in Windows.
<example>
<title>UNIX include_path</title>
<programlisting role="php3.ini">
<![CDATA[
include_path=.:/home/httpd/php-lib
]]>
</programlisting>
</example>
<example>
<title>Windows include_path</title>
<programlisting role="php3.ini">
<![CDATA[
include_path=".;c:\www\phplib"
]]>
</programlisting>
</example>
The default value for this directive is <literal>.</literal>
(only the current directory).</para>
</listitem>
</varlistentry>
<varlistentry id="ini.log-errors">
<term>
<parameter>log_errors</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Tells whether script error messages should be logged to the
server's error log. This option is thus server-specific.</para>
</listitem>
</varlistentry>
<varlistentry id="ini.magic-quotes-gpc">
<term>
<parameter>magic_quotes_gpc</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Sets the magic_quotes state for GPC (Get/Post/Cookie)
operations. When magic_quotes are on, all ' (single-quote),
&quot; (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.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.magic-quotes-runtime">
<term>
<parameter>magic_quotes_runtime</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
If <parameter>magic_quotes_runtime</parameter> 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
<parameter>magic_quotes_sybase</parameter> is also on, a
single-quote is escaped with a single-quote instead of a
backslash.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.magic-quotes-sybase">
<term>
<parameter>magic_quotes_sybase</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
If <parameter>magic_quotes_sybase</parameter> is also on, a
single-quote is escaped with a single-quote instead of a
backslash if <parameter>magic_quotes_gpc</parameter> or
<parameter>magic_quotes_runtime</parameter> is enabled.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.max-execution-time">
<term>
<parameter>max_execution_time</parameter>
<type>integer</type>
</term>
<listitem>
<para>
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 <literal>30</literal>.
</para>
<para>
The maximum execution time is not affected by system calls,
the <function>sleep</function> function, etc. Please see the
<function>set_time_limit</function> function for more
details.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.memory-limit">
<term>
<parameter>memory_limit</parameter>
<type>integer</type>
</term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.precision">
<term>
<parameter>precision</parameter>
<type>integer</type>
</term>
<listitem>
<simpara>
The number of significant digits displayed in floating point numbers.
</simpara>
</listitem>
</varlistentry>
<varlistentry id="ini.register-argc-argv">
<term>
<parameter>register_argc_argv</parameter>
<type>boolean</type>
</term>
<listitem>
<simpara>
Tells PHP whether to declare the argv &amp; argc variables
(that would contain the GET information).
</simpara>
<simpara>
See also <link linkend="features.commandline">command line</link>.
Also, this directive became available in PHP 4.0.0 and
was always "on" before that.
</simpara>
</listitem>
</varlistentry>
<varlistentry id="ini.post-max-size">
<term>
<parameter>post_max_size</parameter>
<type>integer</type>
</term>
<listitem>
<simpara>
Sets max size of post data allowed. This setting also affects
file upload. To upload large files, this value must be larger
than <link
linkend="ini.upload-max-filesize">upload_max_filesize</link>.
</simpara>
<simpara>
If memory limit is enabled by configure script, <link
linkend="ini.memory-limit">memory_limit</link> also affects
file uploading. Generally speaking, <link
linkend="ini.memory-limit">memory_limit</link> should be
larger than <link
linkend="ini.post-max-size">post_max_size</link>.
</simpara>
</listitem>
</varlistentry>
<varlistentry id="ini.register-globals">
<term>
<parameter>register_globals</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Tells whether or not to register the EGPCS (Environment, GET,
POST, Cookie, Server) variables as global variables. For example;
if register_globals = on, the url
<literal>http://www.example.com/test.php?id=3</literal> will produce
<varname>$id</varname>. Or, <varname>$DOCUMENT_ROOT</varname> from
<varname>$_SERVER['DOCUMENT_ROOT']</varname>. You may want to turn
this off if you don't want to clutter your scripts' global scope with
user data. As of PHP <ulink url="&url.php.release4.2.0;">4.2.0</ulink>,
this directive defaults to <emphasis>off</emphasis>. It's preferred to
go through PHP <link linkend="reserved.variables">Predefined Variables
</link> instead, such as the
<link linkend="language.variables.superglobals">superglobals</link>:
<varname>$_ENV</varname>, <varname>$_GET</varname>,
<varname>$_POST</varname>, <varname>$_COOKIE</varname>, and
<varname>$_SERVER</varname>. Please read the security chapter on
<link linkend="security.registerglobals">Using register_globals</link>
for related information.
</para>
<para>
Please note that <systemitem role="directive">register_globals</systemitem>
cannot be set at runtime (<function>ini_set</function>). Although, you can
use <filename>.htaccess</filename> if your host allows it as described
above. An example <filename>.htaccess</filename> entry:
<userinput>php_flag register_globals on</userinput>.
</para>
<note>
<para>
<systemitem role="directive">register_globals</systemitem> is affected
by the <link linkend="ini.variables-order">variables_order</link>
directive.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry id="ini.short-open-tag">
<term>
<parameter>short_open_tag</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Tells whether the short form (<userinput>&lt;? ?&gt;</userinput>)
of PHP's open tag should be allowed. If you want to use PHP in
combination with XML, you can disable this option in order to
use <userinput>&lt;?xml ?&gt;</userinput> inline. Otherwise, you
can print it with PHP, for example: <userinput>&lt;?php echo '&lt;?xml
version="1.0"'; ?&gt;</userinput>. Also if disabled, you must use the
long form of the PHP open tag (<userinput>&lt;?php ?&gt;</userinput>).
</para>
<note>
<para>
This directive also affects the shorthand <userinput>&lt;?=</userinput>,
which is identical to <userinput>&lt;? echo</userinput>. Use of this
shortcut requires <systemitem role="directive">short_open_tag</systemitem>
to be on.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry id="ini.sql.safe-mode">
<term>
<parameter>sql.safe_mode</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.track-errors">
<term>
<parameter>track_errors</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
If enabled, the last error message will always be present in the
global variable <varname>$php_errormsg</varname>.</para>
</listitem>
</varlistentry>
<varlistentry id="ini.track-vars">
<term>
<parameter>track_vars</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
If enabled, then Environment, GET, POST, Cookie, and Server
variables can be found in the global associative arrays
<varname>$_ENV</varname>,
<varname>$_GET</varname>,
<varname>$_POST</varname>,
<varname>$_COOKIE</varname>, and
<varname>$_SERVER</varname>.
</para>
<para>
Note that as of PHP 4.0.3, <systemitem
role="directive">track_vars</systemitem> is always turned on.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.upload-tmp-dir">
<term>
<parameter>upload_tmp_dir</parameter>
<type>string</type>
</term>
<listitem>
<para>
The temporary directory used for storing files when doing
file upload. Must be writable by whatever user PHP is
running as.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.upload-max-filesize">
<term>
<parameter>upload_max_filesize</parameter>
<type>integer</type>
</term>
<listitem>
<para>
The maximum size of an uploaded file. The value is
in bytes.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.user-dir">
<term>
<parameter>user_dir</parameter>
<type>string</type>
</term>
<listitem>
<para>
The base name of the directory used on a user's home
directory for PHP files, for example
<literal>public_html</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.warn-plus-overloading">
<term>
<parameter>warn_plus_overloading</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
If enabled, this option makes PHP output a warning when the
plus (<literal>+</literal>) 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
(<literal>.</literal>).
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</sect2>
<sect2 id="ini.sect.safe-mode">
<title>Safe Mode Configuration Directives</title>
<variablelist>
<varlistentry id="ini.safe-mode">
<term>
<parameter>safe_mode</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Whether to enable PHP's safe mode. Read the
<link linkend="security">Security</link> and
<link linkend="features.safe-mode">Safe Mode</link> chapters for
more information.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.safe-mode-gid">
<term>
<parameter>safe_mode_gid</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Whether to use <literal>UID</literal> (&false;) or
<literal>GID</literal> (&true;) checking upon file
access. See <link linkend="features.safe-mode">Safe Mode</link> for
more information.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.safe-mode-exec-dir">
<term>
<parameter>safe_mode_exec_dir</parameter>
<type>string</type>
</term>
<listitem>
<para>
If PHP is used in safe mode, <function>system</function> and
the other functions executing system programs refuse to start
programs that are not in this directory.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.safe-mode-include-dir">
<term>
<parameter>safe_mode_include_dir</parameter>
<type>string</type>
</term>
<listitem>
<para>
<literal>UID</literal>/<literal>GID</literal> checks are bypassed when
including files from this directory and its subdirectories (directory
must also be in <link linkend="ini.include-path">include_path</link>
or full path must including).
</para>
<simpara>
As of PHP 4.2.0, this directive can take on a semi-colon separated
path in a similar fashion to the include_path directive, rather than
just a single directory.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="ini.sect.debugger">
<title>Debugger Configuration Directives</title>
<variablelist>
<varlistentry id="ini.debugger.host">
<term>
<parameter>debugger.host</parameter>
<type>string</type>
</term>
<listitem>
<para>
DNS name or IP address of host used by the debugger.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.debugger.port">
<term>
<parameter>debugger.port</parameter>
<type>string</type>
</term>
<listitem>
<para>
Port number used by the debugger.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.debugger.enabled">
<term>
<parameter>debugger.enabled</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Whether the debugger is enabled.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="ini.sect.extension">
<title>Extension Loading Directives</title>
<variablelist>
<varlistentry id="ini.enable-dl">
<term>
<parameter>enable_dl</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
This directive is really only useful in the Apache module
version of PHP. You can turn dynamic loading of PHP
extensions with <function>dl</function> on and off per
virtual server or per directory.
</para>
<para>
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.
</para>
<para>
The default is to allow dynamic loading, except when using
safe-mode. In safe-mode, it's always imposible to use
<function>dl</function>.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.extension-dir">
<term>
<parameter>extension_dir</parameter>
<type>string</type>
</term>
<listitem>
<para>
In what directory PHP should look for dynamically loadable
extensions.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.extension">
<term>
<parameter>extension</parameter>
<type>string</type>
</term>
<listitem>
<para>
Which dynamically loadable extensions to load when PHP starts
up.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="ini.sect.msql">
<title>mSQL Configuration Directives</title>
<variablelist>
<varlistentry id="ini.msql.allow-persistent">
<term>
<parameter>msql.allow_persistent</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Whether to allow persistent mSQL connections.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.msql.max-persistent">
<term>
<parameter>msql.max_persistent</parameter>
<type>integer</type>
</term>
<listitem>
<para>
The maximum number of persistent mSQL connections per process.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.msql.max-links">
<term>
<parameter>msql.max_links</parameter>
<type>integer</type>
</term>
<listitem>
<para>
The maximum number of mSQL connections per process, including
persistent connections.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="ini.sect.pgsql">
<title>Postgres Configuration Directives</title>
<variablelist>
<varlistentry id="ini.pgsql.allow-persistent">
<term>
<parameter>pgsql.allow_persistent</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Whether to allow persistent Postgres connections.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.pgsql.max-persistent">
<term>
<parameter>pgsql.max_persistent</parameter>
<type>integer</type>
</term>
<listitem>
<para>
The maximum number of persistent Postgres connections per
process.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.pgsql.max-links">
<term>
<parameter>pgsql.max_links</parameter>
<type>integer</type>
</term>
<listitem>
<para>
The maximum number of Postgres connections per process,
including persistent connections.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="ini.sect.sesam">
<title>SESAM Configuration Directives</title>
<variablelist>
<varlistentry id="ini.sesam-oml">
<term>
<parameter>sesam_oml</parameter>
<type>string</type>
</term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.sesam-configfile">
<term>
<parameter>sesam_configfile</parameter>
<type>string</type>
</term>
<listitem>
<para>
Name of SESAM application configuration file. Required for
using SESAM functions. The BS2000 file must be readable by
the apache server's user id.
</para>
<para>
The application configuration file will usually contain a
configuration like (see SESAM
reference manual):
<informalexample>
<programlisting role="bs2000">
<![CDATA[
CNF=B
NAM=K
NOTYPE
]]>
</programlisting>
</informalexample>
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.sesam-messagecatalog">
<term>
<parameter>sesam_messagecatalog</parameter>
<type>string</type>
</term>
<listitem>
<para>
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.
</para>
<para>
The message catalog must be set ACCESS=READ,SHARE=YES because
it must be readable by the apache server's user id.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="ini.sect.sybase">
<title>Sybase Configuration Directives</title>
<variablelist>
<varlistentry id="ini.sybase.allow-persistent">
<term>
<parameter>sybase.allow_persistent</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Whether to allow persistent Sybase connections.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.sybase.max-persistent">
<term>
<parameter>sybase.max_persistent</parameter>
<type>integer</type>
</term>
<listitem>
<para>
The maximum number of persistent Sybase connections per
process.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.sybase.max-links">
<term>
<parameter>sybase.max_links</parameter>
<type>integer</type>
</term>
<listitem>
<para>
The maximum number of Sybase connections per process,
including persistent connections.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="ini.sect.sybct">
<title>Sybase-CT Configuration Directives</title>
<variablelist>
<varlistentry id="ini.sybct.allow-persistent">
<term>
<parameter>sybct.allow_persistent</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Whether to allow persistent Sybase-CT connections.
The default is on.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.sybct.max-persistent">
<term>
<parameter>sybct.max_persistent</parameter>
<type>integer</type>
</term>
<listitem>
<para>
The maximum number of persistent Sybase-CT connections per
process. The default is -1 meaning unlimited.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.sybct.max-links">
<term>
<parameter>sybct.max_links</parameter>
<type>integer</type>
</term>
<listitem>
<para>
The maximum number of Sybase-CT connections per process,
including persistent connections. The default is -1 meaning
unlimited.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.sybct.min-server-severity">
<term>
<parameter>sybct.min_server_severity</parameter>
<type>integer</type>
</term>
<listitem>
<para>
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
<function>sybase_min_server_severity</function>. The default
is 10 which reports errors of information severity or greater.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.sybct.min-client-severity">
<term>
<parameter>sybct.min_client_severity</parameter>
<type>integer</type>
</term>
<listitem>
<para>
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
<function>sybase_min_client_severity</function>. The default
is 10 which effectively disables reporting.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.sybct.login-timeout">
<term>
<parameter>sybct.login_timeout</parameter>
<type>integer</type>
</term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.sybct.timeout">
<term>
<parameter>sybct.timeout</parameter>
<type>integer</type>
</term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.sybct.hostname">
<term>
<parameter>sybct.hostname</parameter>
<type>string</type>
</term>
<listitem>
<para>
The name of the host you claim to be connecting from, for
display by sp_who. The default is none.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="ini.sect.informix">
<title>Informix Configuration Directives</title>
<variablelist>
<varlistentry id="ini.ifx.allow-persistent">
<term>
<parameter>ifx.allow_persistent</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Whether to allow persistent Informix connections.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.ifx.max-persistent">
<term>
<parameter>ifx.max_persistent</parameter>
<type>integer</type>
</term>
<listitem>
<para>
The maximum number of persistent Informix connections per
process.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.ifx.max-links">
<term>
<parameter>ifx.max_links</parameter>
<type>integer</type>
</term>
<listitem>
<para>
The maximum number of Informix connections per process, including
persistent connections.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.ifx.default-host">
<term>
<parameter>ifx.default_host</parameter>
<type>string</type>
</term>
<listitem>
<para>
The default host to connect to when no host is specified
in <function>ifx_connect</function> or
<function>ifx_pconnect</function>.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.ifx.default-user">
<term>
<parameter>ifx.default_user</parameter>
<type>string</type>
</term>
<listitem>
<para>
The default user id to use when none is specified
in <function>ifx_connect</function> or
<function>ifx_pconnect</function>.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.ifx.default-password">
<term>
<parameter>ifx.default_password</parameter>
<type>string</type>
</term>
<listitem>
<para>
The default password to use when none is specified
in <function>ifx_connect</function> or
<function>ifx_pconnect</function>.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.ifx.blobinfile">
<term>
<parameter>ifx.blobinfile</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
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 <function>ifx_blobinfile_mode</function>.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.ifx.textasvarchar">
<term>
<parameter>ifx.textasvarchar</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
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
<function>ifx_textasvarchar</function>.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.ifx.byteasvarchar">
<term>
<parameter>ifx.byteasvarchar</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
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
<function>ifx_textasvarchar</function>.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.ifx.charasvarchar">
<term>
<parameter>ifx.charasvarchar</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Set to &true; if you want to trim trailing spaces
from CHAR columns when fetching them.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.ifx.nullformat">
<term>
<parameter>ifx.nullformat</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
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
<function>ifx_nullformat</function>.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="ini.sect.bcmath">
<title>BC Math Configuration Directives</title>
<variablelist>
<varlistentry id="ini.bcmath.scale">
<term>
<parameter>bcmath.scale</parameter>
<type>integer</type>
</term>
<listitem>
<para>
Number of decimal digits for all bcmath functions.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="ini.sect.browscap">
<title>Browser Capability Configuration Directives</title>
<variablelist>
<varlistentry id="ini.browscap">
<term>
<parameter>browscap</parameter>
<type>string</type>
</term>
<listitem>
<para>
Name of browser capabilities file. See also
<function>get_browser</function>.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="ini.sect.mbstring">
<title>Multi-Byte String Configuration Directives</title>
<variablelist>
<varlistentry id="ini.mbstring.internal-encoding">
<term>
<parameter>mbstring.internal_encoding</parameter>
<type>string</type>
</term>
<listitem>
<para>
<literal>mbstring.internal_encoding</literal> defines default
internal character encoding.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.mbstring.http-input">
<term>
<parameter>mbstring.http_input</parameter>
<type>string</type>
</term>
<listitem>
<para>
<literal>mbstring.http_input</literal> defines default
<literal>HTTP</literal> input character encoding.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.mbstring.http-output">
<term>
<parameter>mbstring.http_output</parameter>
<type>string</type>
</term>
<listitem>
<para>
<literal>mbstring.http_output</literal> defines default
<literal>HTTP</literal> output character encoding.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.mbstring.detect-order">
<term>
<parameter>mbstring.detect_order</parameter>
<type>string</type>
</term>
<listitem>
<para>
<literal>mbstring.detect_order</literal> defines default
character encoding detection order.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.mbstring.substitute-character">
<term>
<parameter>mbstring.substitute_character</parameter>
<type>string</type>
</term>
<listitem>
<para>
<literal>mbstring.substitute_character</literal> defines
character to substitute for invalid character codes.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="ini.sect.exif">
<title>Exif Configuration Directives</title>
<para>
Exif supports automatically conversion for Unicode and JIS
character encodings of user comments when module mbstring
is available. This is done by first decoding the comment
using the specified characterset. The result is then encoded
with another characterset which should match your
<literal>HTTP</literal> output.
<variablelist>
<varlistentry id="ini.exif.encode_unicode">
<term>
<parameter>exif.encode_unicode</parameter>
<type>string</type>
</term>
<listitem>
<para>
<literal>exif.encode_unicode</literal> defines the
characterset UNICODE user comments are handled.
This defaults to ISO-8859-15 which should work for
most non asian countries. The setting can be empty
or must be an encoding supported by mbstring. If it
is empty the current internal encoding of mbstring is
used.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.exif.decode_unicode_motorola">
<term>
<parameter>exif.decode_unicode_motorola</parameter>
<type>string</type>
</term>
<listitem>
<para>
<literal>exif.decode_unicode_motorola</literal> defines
the image internal characterset for Unicode encoded user
comments if image is in motorola byte order (big-endian).
This setting cannot be empty but you can specify a list
of encodings supported by mbstring. The default is UCS-2BE.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.exif.decode_unicode_intel">
<term>
<parameter>exif.decode_unicode_intel</parameter>
<type>string</type>
</term>
<listitem>
<para>
<literal>exif.decode_unicode_intel</literal> defines
the image internal characterset for Unicode encoded user
comments if image is in intel byte order (little-endian).
This setting cannot be empty but you can specify a list
of encodings supported by mbstring. The default is UCS-2LE.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.exif.encode_jis">
<term>
<parameter>exif.encode_jis</parameter>
<type>string</type>
</term>
<listitem>
<para>
<literal>exif.encode_jis</literal> defines the
characterset JIS user comments are handled.
This defaults to an empty value which forces
the functions to use the current internal encoding
of mbstring.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.exif.decode_jis_motorola">
<term>
<parameter>exif.decode_jis_motorola</parameter>
<type>string</type>
</term>
<listitem>
<para>
<literal>exif.decode_jis_motorola</literal> defines
the image internal characterset for JIS encoded user
comments if image is in motorola byte order (big-endian).
This setting cannot be empty but you can specify a list
of encodings supported by mbstring. The default is JIS.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.exif.decode_jis_intel">
<term>
<parameter>exif.decode_jis_intel</parameter>
<type>string</type>
</term>
<listitem>
<para>
<literal>exif.decode_jis_intel</literal> defines
the image internal characterset for JIS encoded user
comments if image is in intel byte order (little-endian).
This setting cannot be empty but you can specify a list
of encodings supported by mbstring. The default is JIS.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</sect2>
</sect1>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->