mirror of
https://github.com/php/doc-ru.git
synced 2026-03-23 23:32:16 +01:00
1806 lines
74 KiB
XML
1806 lines
74 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: a1ab750f296de54d79fe3749d5c9164b0593d803 Maintainer: mch Status: ready -->
|
||
<!-- Reviewed: no -->
|
||
<section xml:id="ini.core" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||
<title>Описание встроенных директив &php.ini;</title>
|
||
<para>
|
||
Список включает встроенные директивы файла &php.ini;, которыми настраивают
|
||
PHP. Директивы, которые обрабатываются модулями, перечисляют и подробно
|
||
описывают страницы документации модулей.
|
||
Например, информацию о директивах сессий даёт
|
||
<link linkend="session.configuration">страница документации сессий</link>.
|
||
</para>
|
||
<note>
|
||
<para>
|
||
PHP использует представленные здесь значения по умолчанию, только если
|
||
не подключили файл &php.ini;; значения файла &php.ini; для производственной среды
|
||
и для разработки часто различаются.
|
||
</para>
|
||
</note>
|
||
|
||
<section xml:id="ini.sect.language-options">
|
||
<title>Языковые опции</title>
|
||
<para>
|
||
<table>
|
||
<title>Опции языка и прочих настроек</title>
|
||
<tgroup cols="4">
|
||
<thead>
|
||
<row>
|
||
<entry>&Name;</entry>
|
||
<entry>&Default;</entry>
|
||
<entry>&Changeable;</entry>
|
||
<entry>&Changelog;</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry><link linkend="ini.short-open-tag">short_open_tag</link></entry>
|
||
<entry>"1"</entry>
|
||
<entry><constant>INI_PERDIR</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.precision">precision</link></entry>
|
||
<entry>"14"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.serialize-precision">serialize_precision</link></entry>
|
||
<entry>"-1"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry>
|
||
До версии PHP 7.1.0 значение по умолчанию равнялось 17.
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.disable-functions">disable_functions</link></entry>
|
||
<entry>""</entry>
|
||
<entry>Только <constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.disable-classes">disable_classes</link></entry>
|
||
<entry>""</entry>
|
||
<entry>Только &php.ini;</entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.exit-on-timeout">exit_on_timeout</link></entry>
|
||
<entry>""</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.expose-php">expose_php</link></entry>
|
||
<entry>"1"</entry>
|
||
<entry>Только &php.ini;</entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.hard-timeout">hard_timeout</link></entry>
|
||
<entry>"2"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry>Опция доступна с PHP 7.1.0.</entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.zend.exception-ignore-args">zend.exception_ignore_args</link></entry>
|
||
<entry>"0"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry>Опция доступна с PHP 7.4.0</entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.zend.multibyte">zend.multibyte</link></entry>
|
||
<entry>"0"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.zend.script-encoding">zend.script_encoding</link></entry>
|
||
<entry>NULL</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.zend.detect-unicode">zend.detect_unicode</link></entry>
|
||
<entry>NULL</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.zend.signal-check">zend.signal_check</link></entry>
|
||
<entry>"0"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.zend.assertions">zend.assertions</link></entry>
|
||
<entry>"1"</entry>
|
||
<entry><constant>INI_ALL</constant> с ограничениями</entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.zend.exception-string-param-max-len">zend.exception_string_param_max_len</link></entry>
|
||
<entry>"15"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry>Опция доступна с PHP 8.0.0.</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
</para>
|
||
|
||
&ini.descriptions.title;
|
||
|
||
<para>
|
||
<variablelist>
|
||
<varlistentry xml:id="ini.short-open-tag">
|
||
<term>
|
||
<parameter>short_open_tag</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Опция определяет, разрешается ли короткая форма записи (<userinput><? ?></userinput>)
|
||
тегов PHP. Если вы хотите использовать PHP совместно с XML, вы можете отключить эту
|
||
опцию, чтобы беспрепятственно использовать <userinput><?xml ?></userinput>.
|
||
В противном случае, вы можете отобразить это при помощи PHP, например:
|
||
<userinput><?php echo '<?xml version="1.0"?>'; ?></userinput>.
|
||
Если же эта опция отключена, вы должны использовать длинную форму
|
||
открывающего тега PHP (<userinput><?php ?></userinput>).
|
||
</para>
|
||
<note>
|
||
<para>
|
||
Директива не влияет на сокращение <userinput><?=</userinput>,
|
||
которое всегда доступно.
|
||
</para>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.precision">
|
||
<term>
|
||
<parameter>precision</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Количество значащих цифр, отображаемых для чисел с плавающей точкой.
|
||
Значение <literal>-1</literal> включает усовершенствованный алгоритм
|
||
для округления таких чисел.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.serialize-precision">
|
||
<term>
|
||
<parameter>serialize_precision</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Количество сохраняемых значащих цифр при сериализации чисел с плавающей точкой.
|
||
Значение <literal>-1</literal> включает усовершенствованный алгоритм
|
||
для округления таких чисел.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.expose-php">
|
||
<term>
|
||
<parameter>expose_php</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Опция сообщает о работе PHP на сервере, включая передачу версии PHP
|
||
в HTTP-заголовке наподобие X-Powered-By: PHP/5.3.7.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.disable-functions">
|
||
<term>
|
||
<parameter>disable_functions</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Директива отключает отдельные функции. Опция принимает разделённый запятыми список названий функций.
|
||
Начиная с PHP 8.0.0 отключение функции удаляет определение функции,
|
||
разрешая переопределить функцию в пользовательском коде.
|
||
До PHP 8.0.0 отключение функции только предотвращало вызов функции.
|
||
</simpara>
|
||
<simpara>
|
||
Директива отключает только <link linkend="functions.internal">внутренние функции</link>.
|
||
Функция не затрагивает <link linkend="functions.user-defined">пользовательские функции</link>.
|
||
</simpara>
|
||
<simpara>
|
||
Директиву устанавливают в файле &php.ini;.
|
||
Опцию нельзя устанавливать в файле &httpd.conf;.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.disable-classes">
|
||
<term>
|
||
<parameter>disable_classes</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Директива отключает отдельные классы.
|
||
Опция принимает разделённый запятыми список названий классов.
|
||
Отключение класса просто запрещает создавать экземпляр класса.
|
||
</para>
|
||
<para>
|
||
Директива отключает только внутренние классы.
|
||
Опция не затрагивает пользовательские классы.
|
||
</para>
|
||
<simpara>
|
||
Директиву требуется установливать в файле &php.ini;.
|
||
Опцию нельзя устанавливать в файле &httpd.conf;.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.zend.assertions">
|
||
<term>
|
||
<parameter>zend.assertions</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Со значением <literal>1</literal> проверочный код будет исполняться (режим
|
||
разработки). При значении <literal>0</literal> PHP сгенерирует код проверок, однако,
|
||
исполнять не будет. Со значением <literal>-1</literal>, проверочный код не будет
|
||
генерироваться (продуктивный режим).
|
||
</simpara>
|
||
<note>
|
||
<para>
|
||
При запуске процесса в режиме релиза значение директивы <link linkend="ini.zend.assertions">zend.assertions</link>
|
||
нельзя будет изменить во время выполнения, поскольку код утверждений не генерируется.
|
||
</para>
|
||
<para>
|
||
При запуске процесса в режиме разработки для директивы <link linkend="ini.zend.assertions">zend.assertions</link>
|
||
нельзя будет установить значение <literal>-1</literal> во время выполнения.
|
||
</para>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.zend.exception-string-param-max-len">
|
||
<term>
|
||
<parameter>zend.exception_string_param_max_len</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Максимальная длина аргументов строковой функции в строковых трассировках стека.
|
||
Опиция принимает значение в диапазоне от <literal>"0"</literal> до <literal>"1000000"</literal>.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.hard-timeout">
|
||
<term>
|
||
<parameter>hard_timeout</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Когда истечёт время ожидания, которое установили в директиве <link linkend="ini.max-execution-time">max_execution_time</link>,
|
||
среда выполнения PHP аккуратно отключит ресурсы. Если во время этого что-то застрянет, время ожидания будет
|
||
установлено на указанное количество секунд. Когда истечёт жёсткое время ожидания, PHP завершит работу с ошибкой.
|
||
Если установлено значение 0, жёсткое время ожидания никогда не активируется.
|
||
</para>
|
||
<para>
|
||
Когда PHP останавливается после жёсткого времени ожидания, это будет выглядеть примерно так:
|
||
<screen>
|
||
<![CDATA[
|
||
Fatal error: Maximum execution time of 30+2 seconds exceeded (terminated) in Unknown on line 0
|
||
]]>
|
||
</screen>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.zend.exception-ignore-args">
|
||
<term>
|
||
<parameter>zend.exception_ignore_args</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Исключает аргументы из трассировки стека, сгенерированных из исключений.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.zend.multibyte">
|
||
<term>
|
||
<parameter>zend.multibyte</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Директива разрешает парсинг исходных файлов в многобайтных кодировках. Включение
|
||
zend.multibyte требуется для использования кодировок символов подобных SJIS, BIG5
|
||
и т. д., содержащих специальные символы в многобайтных строковых данных. Совместимые
|
||
с ISO-8859-1 кодировки, например UTF-8, EUC и т. д., не требуют эту опцию.
|
||
</para>
|
||
<para>
|
||
Модуль zend.multibyte требует установленного модуля "mbstring".
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.zend.script-encoding">
|
||
<term>
|
||
<parameter>zend.script_encoding</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
PHP будет использовать это значение только при отсутствии директивы
|
||
<link linkend="control-structures.declare.encoding">declare(encoding=...)</link>
|
||
в начале скрипта. В кодировках, которые несовместимы с кодировкой ISO-8859-1,
|
||
требуется включить и опцию zend.multibyte, и опцию zend.script_encoding.
|
||
</para>
|
||
<para>
|
||
Литеральные строки должны быть транслитерированы из zend.script_encoding в
|
||
mbstring.internal_encoding, как если бы вызвали функцию <function>mb_convert_encoding</function>.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.zend.detect-unicode">
|
||
<term>
|
||
<parameter>zend.detect_unicode</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Определяет, проверять ли BOM (Byte Order Mark, метка порядка байтов)
|
||
и корректность многобайтных символов в файле. Эта проверка производится до вызова
|
||
<function>__halt_compiler</function>. Доступна только в режиме Zend Multibyte.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.zend.signal-check">
|
||
<term>
|
||
<parameter>zend.signal_check</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Определяет, проверять ли заменённые обработчики сигналов при завершении скрипта.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.exit-on-timeout">
|
||
<term>
|
||
<parameter>exit_on_timeout</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Директива работает только с модулем mod_php веб-сервера Apache1 и заставляет дочерний процесс Apache
|
||
завершить работу при истечении времени ожидания выполнения PHP-скрипта. Превышение времени ожидания приводит
|
||
к внутреннему вызову longjmp() в Apache1, который оставляет отдельные модули
|
||
в несогласованном состоянии. По завершении процесса все неснятые блокировки
|
||
или память очистятся.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
</variablelist>
|
||
</para>
|
||
</section>
|
||
|
||
<section xml:id="ini.sect.resource-limits">
|
||
<title>Ограничения ресурсов</title>
|
||
<para>
|
||
<table>
|
||
<title>Ограничения ресурсов</title>
|
||
<tgroup cols="4">
|
||
<thead>
|
||
<row>
|
||
<entry>&Name;</entry>
|
||
<entry>&Default;</entry>
|
||
<entry>&Changeable;</entry>
|
||
<entry>&Changelog;</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry><link linkend="ini.memory-limit">memory_limit</link></entry>
|
||
<entry>"128M"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
</para>
|
||
|
||
&ini.descriptions.title;
|
||
|
||
<para>
|
||
<variablelist>
|
||
<varlistentry xml:id="ini.memory-limit">
|
||
<term>
|
||
<parameter>memory_limit</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Директива задаёт максимальный объем памяти в байтах, который разрешается
|
||
использовать скрипту. Это помогает предотвратить ситуацию, при которой плохо
|
||
написанный скрипт съедает всю доступную память сервера. Чтобы убрать
|
||
ограничения, установите для директивы значение <literal>-1</literal>.
|
||
</para>
|
||
|
||
&ini.shorthandbytes;
|
||
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</para>
|
||
<para>
|
||
Смотрите также описание директивы: <link linkend="ini.max-execution-time">max_execution_time</link>.
|
||
</para>
|
||
</section>
|
||
|
||
<section xml:id="ini.sect.performance">
|
||
<title>Настройка производительности</title>
|
||
<para>
|
||
<table>
|
||
<title>Настройка производительности</title>
|
||
<tgroup cols="4">
|
||
<thead>
|
||
<row>
|
||
<entry>&Name;</entry>
|
||
<entry>&Default;</entry>
|
||
<entry>&Changeable;</entry>
|
||
<entry>&Changelog;</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry><link linkend="ini.realpath-cache-size">realpath_cache_size</link></entry>
|
||
<entry>"4M"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry>До PHP 7.0.16 и 7.1.2 значение по умолчанию равнялось <literal>"16K"</literal></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.realpath-cache-ttl">realpath_cache_ttl</link></entry>
|
||
<entry>"120"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
<note>
|
||
<para>
|
||
Директива <link linkend="ini.open-basedir">open_basedir</link>
|
||
<emphasis>отключит</emphasis> кеш realpath.
|
||
</para>
|
||
</note>
|
||
</para>
|
||
&ini.descriptions.title;
|
||
<para>
|
||
<variablelist>
|
||
<varlistentry xml:id="ini.realpath-cache-size">
|
||
<term>
|
||
<parameter>realpath_cache_size</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Директива определяет размера кеша realpath, который будет использовать PHP. Это значение
|
||
требуется увеличить в системах, в которых PHP открывает много
|
||
файлов, чтобы отразить количество файловых операций, которые выполнил PHP.
|
||
</para>
|
||
<para>
|
||
Размер — общее количество байтов в сохранённых строках путей, плюс размер данных,
|
||
которые связаны с записью кеша. Это значит, что для хранения длинных путей в кеше,
|
||
размер этого кеша должен быть больше. Это значение не определяет напрямую
|
||
количество разных путей, которые PHP может закешировать.
|
||
</para>
|
||
<para>
|
||
Размер, который требуется для кеширования, зависит от системы.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="ini.realpath-cache-ttl">
|
||
<term>
|
||
<parameter>realpath_cache_ttl</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Время в секундах, в течение которого PHP будет использовать realpath-кеш
|
||
для файла или директории. Для систем, в которых файлы изменяются редко,
|
||
это значение можно увеличить.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</para>
|
||
</section>
|
||
|
||
<section xml:id="ini.sect.data-handling">
|
||
<title>Обработка данных</title>
|
||
<para>
|
||
<table>
|
||
<title>Конфигурационные опции обработки данных</title>
|
||
<tgroup cols="4">
|
||
<thead>
|
||
<row>
|
||
<entry>&Name;</entry>
|
||
<entry>&Default;</entry>
|
||
<entry>&Changeable;</entry>
|
||
<entry>&Changelog;</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry><link linkend="ini.arg-separator.output">arg_separator.output</link></entry>
|
||
<entry>"&"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.arg-separator.input">arg_separator.input</link></entry>
|
||
<entry>"&"</entry>
|
||
<entry><constant>INI_PERDIR</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.variables-order">variables_order</link></entry>
|
||
<entry>"EGPCS"</entry>
|
||
<entry><constant>INI_PERDIR</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.request-order">request_order</link></entry>
|
||
<entry>""</entry>
|
||
<entry><constant>INI_PERDIR</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.auto-globals-jit">auto_globals_jit</link></entry>
|
||
<entry>"1"</entry>
|
||
<entry><constant>INI_PERDIR</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.register-argc-argv">register_argc_argv</link></entry>
|
||
<entry>"1"</entry>
|
||
<entry><constant>INI_PERDIR</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.enable-post-data-reading">enable_post_data_reading</link></entry>
|
||
<entry>"1"</entry>
|
||
<entry><constant>INI_PERDIR</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.post-max-size">post_max_size</link></entry>
|
||
<entry>"8M"</entry>
|
||
<entry><constant>INI_PERDIR</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.auto-prepend-file">auto_prepend_file</link></entry>
|
||
<entry>NULL</entry>
|
||
<entry><constant>INI_PERDIR</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.auto-append-file">auto_append_file</link></entry>
|
||
<entry>NULL</entry>
|
||
<entry><constant>INI_PERDIR</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.default-mimetype">default_mimetype</link></entry>
|
||
<entry>"text/html"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.default-charset">default_charset</link></entry>
|
||
<entry>"UTF-8"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.input-encoding">input_encoding</link></entry>
|
||
<entry>""</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.output-encoding">output_encoding</link></entry>
|
||
<entry>""</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.internal-encoding">internal_encoding</link></entry>
|
||
<entry>""</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
</para>
|
||
|
||
&ini.descriptions.title;
|
||
|
||
<para>
|
||
<variablelist>
|
||
<varlistentry xml:id="ini.arg-separator.output">
|
||
<term>
|
||
<parameter>arg_separator.output</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Этот разделитель используется в генерируемых PHP URL в качестве разделителя
|
||
аргументов.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.arg-separator.input">
|
||
<term>
|
||
<parameter>arg_separator.input</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Список разделителей, используемых PHP для получения переменных из URL.
|
||
</para>
|
||
<note>
|
||
<para>
|
||
Каждый символ в этой директиве считается разделителем!
|
||
</para>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.variables-order">
|
||
<term>
|
||
<parameter>variables_order</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Устанавливает порядок обработки переменных EGPCS
|
||
(<literal>E</literal>nvironment,
|
||
<literal>G</literal>et, <literal>P</literal>ost,
|
||
<literal>C</literal>ookie, и <literal>S</literal>erver).
|
||
Например, если variables_order установлена в <literal>"SP"</literal>,
|
||
то PHP создаст &link.superglobals; <varname>$_SERVER</varname> и
|
||
<varname>$_POST</varname>, но не будет создавать
|
||
<varname>$_ENV</varname>, <varname>$_GET</varname> и
|
||
<varname>$_COOKIE</varname>. Установка в "" означает, что ни
|
||
одна &link.superglobals; не будет установлена.
|
||
</para>
|
||
<warning>
|
||
<para>
|
||
В CGI и FastCGI SAPI,
|
||
в <varname>$_SERVER</varname> также добавляются значения
|
||
переменных окружения; <literal>S</literal>
|
||
всегда эквивалентна <literal>ES</literal> вне зависимости от
|
||
самого положения <literal>E</literal> в этой директиве.
|
||
</para>
|
||
</warning>
|
||
<note>
|
||
<para>
|
||
Эта директива также влияет на содержимое и порядок переменной
|
||
<varname>$_REQUEST</varname>.
|
||
</para>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.request-order">
|
||
<term>
|
||
<parameter>request_order</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Эта директива регулирует порядок, в котором PHP добавляет переменные GET, POST
|
||
и Cookie в массив _REQUEST. Добавление производится слева направо,
|
||
новые значения перезаписывают старые.
|
||
</para>
|
||
<para>
|
||
Если значение этой директивы не установлено, то используется значение директивы <link
|
||
linkend="ini.variables-order">variables_order</link> для содержимого
|
||
переменной <varname>$_REQUEST</varname>.
|
||
</para>
|
||
<para>
|
||
Учтите, что файлы <filename>php.ini</filename>, поставляемые с дистрибутивом,
|
||
по соображениям безопасности не содержат значение <literal>'C'</literal> (cookies).
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.auto-globals-jit">
|
||
<term>
|
||
<parameter>auto_globals_jit</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Когда включено, переменные SERVER, REQUEST и ENV создаются в тот момент, когда они
|
||
впервые используются (Just In Time), а не в начале выполнения скрипта. Если эти
|
||
переменные в скрипте не используются, включение этой директивы приведёт к росту
|
||
производительности.
|
||
</para>
|
||
<warning>
|
||
<para>
|
||
Использование переменных SERVER, REQUEST и ENV проверяется на стадии компиляции,
|
||
поэтому их использование с помощью, например, <link
|
||
linkend="language.variables.variable">переменных переменных</link> не
|
||
запустит их инициализацию.
|
||
</para>
|
||
</warning>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.register-argc-argv">
|
||
<term>
|
||
<parameter>register_argc_argv</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Сообщает PHP, следует ли объявлять переменные argv и argc
|
||
(которые будут содержать GET-информацию).
|
||
</simpara>
|
||
<simpara>
|
||
Смотрите также <link linkend="features.commandline">Использование PHP в командной
|
||
строке</link>.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.enable-post-data-reading">
|
||
<term>
|
||
<parameter>enable_post_data_reading</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
При отключении этой опции суперглобальные переменные <varname>$_POST</varname>
|
||
и <varname>$_FILES</varname> <emphasis>не будут</emphasis> заполняться.
|
||
Единственным способом прочесть POST-данные будет чтение обёртки потока
|
||
<link linkend="wrappers.php">php://input</link>.
|
||
Это может оказаться полезным при проксировании запросов или
|
||
обработки POST-данных способом, более эффективно использующим память.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.post-max-size">
|
||
<term>
|
||
<parameter>post_max_size</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Устанавливает максимально допустимый размер данных, отправляемых методом POST.
|
||
Это значение также влияет на загрузку файлов. Для загрузки больших файлов это
|
||
значение должно быть больше значения директивы
|
||
<link linkend="ini.upload-max-filesize">upload_max_filesize</link>.
|
||
</simpara>
|
||
<simpara>
|
||
В сущности,
|
||
<link linkend="ini.memory-limit">memory_limit</link> должна быть
|
||
больше чем <parameter>post_max_size</parameter>.
|
||
</simpara>
|
||
|
||
&ini.shorthandbytes;
|
||
|
||
<simpara>
|
||
Если размер POST-данных больше значения директивы post_max_size,
|
||
<link linkend="language.variables.superglobals">суперглобальные переменные</link>
|
||
<varname>$_POST</varname> и <varname>$_FILES</varname>
|
||
будут пустыми. Это проверяют разными способами, например,
|
||
передав переменную <varname>$_GET</varname> в скрипт, который обрабатывает
|
||
данные, т. е. <literal><form action="edit.php?processed=1"></literal>,
|
||
а затем проверить, установлена ли переменная <varname>$_GET['processed']</varname>.
|
||
</simpara>
|
||
<para>
|
||
<note>
|
||
<para>
|
||
PHP разрешает сокращения значений байтов, включая K (кило), M (мега) и G (гига).
|
||
PHP автоматически преобразовывает эти сокращения. Будьте осторожны с превышением
|
||
диапазона 32-битных целых значений на 32-битной версии PHP, поскольку
|
||
это приведёт к ошибке скрипта.
|
||
</para>
|
||
</note>
|
||
</para>
|
||
<para>
|
||
<table>
|
||
<title>Список изменений <literal>post_max_size</literal></title>
|
||
<tgroup cols="2">
|
||
<thead>
|
||
<row>
|
||
<entry>&Version;</entry>
|
||
<entry>&Description;</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry>5.3.4</entry>
|
||
<entry>
|
||
Установка <parameter>post_max_size</parameter> = 0 не снимет ограничение, если
|
||
контент имеет тип application/x-www-form-urlencoded или не зарегистрирован в PHP.
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>5.3.2 , 5.2.12</entry>
|
||
<entry>
|
||
Стало возможным снять ограничение на размер пост-запроса установкой
|
||
<parameter>post_max_size</parameter> в 0.
|
||
</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.auto-prepend-file">
|
||
<term>
|
||
<parameter>auto_prepend_file</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Определяет имя файла, который будет автоматически обрабатываться
|
||
перед основным файлом. Файл вызывается так, будто он был подключён
|
||
при помощи функции <function>require</function>, так что
|
||
<link linkend="ini.include-path">include_path</link> также используется.
|
||
</para>
|
||
<para>
|
||
Специальное значение <literal>none</literal> отключает эту директиву.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.auto-append-file">
|
||
<term>
|
||
<parameter>auto_append_file</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Определяет имя файла, который будет автоматически обрабатываться
|
||
после основного файла. Файл вызывается так, будто он был подключён
|
||
при помощи функции <function>require</function>, так что
|
||
<link linkend="ini.include-path">include_path</link> тоже используется.
|
||
</para>
|
||
<para>
|
||
Специальное значение <literal>none</literal> отключает эту директиву.
|
||
<note>
|
||
<simpara>
|
||
Если скрипт завершает работу при помощи <function>exit</function>,
|
||
auto-append <emphasis>НЕ</emphasis> выполняется.</simpara>
|
||
</note>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.default-mimetype">
|
||
<term>
|
||
<parameter>default_mimetype</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
По умолчанию PHP выводит название кодировки в заголовке Content-Type. Если
|
||
передавать кодировку не требуется, просто оставьте эту опцию пустой.
|
||
</para>
|
||
<para>
|
||
"media type" по умолчанию установлен как "text/html".
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.default-charset">
|
||
<term>
|
||
<parameter>default_charset</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
"UTF-8" — значение по умолчанию и используется как
|
||
кодировка по умолчанию для функций
|
||
<function>htmlentities</function>,
|
||
<function>html_entity_decode</function>
|
||
и <function>htmlspecialchars</function>, если параметр
|
||
<parameter>encoding</parameter> не указали. Значение
|
||
<parameter>default_charset</parameter> также используется для указания
|
||
кодировки по умолчанию для функций <link linkend="book.iconv">iconv</link>, если
|
||
конфигурационные опции <link linkend="ini.iconv.input-encoding">
|
||
<parameter>iconv.input_encoding</parameter></link>, <link
|
||
linkend="ini.iconv.output-encoding"><parameter>iconv.output_encoding</parameter>
|
||
</link> и <link linkend="ini.iconv.internal-encoding"><parameter>
|
||
iconv.internal_encoding</parameter></link> не установлены, и для функций
|
||
<link linkend="book.mbstring">mbstring</link>, если не установлены
|
||
<link linkend="ini.mbstring.http-input"><parameter>mbstring.http_input</parameter></link>
|
||
<link linkend="ini.mbstring.http-output"><parameter>mbstring.http_output</parameter></link>
|
||
<link linkend="ini.mbstring.internal-encoding"><parameter>mbstring.internal_encoding</parameter></link>.
|
||
</para>
|
||
<para>
|
||
Все версии PHP используют это значение как кодировку для
|
||
стандартного заголовка Content-Type, отправляемого PHP, если
|
||
этот заголовок не переопределён вызовом функции <function>header</function>.
|
||
</para>
|
||
<para>
|
||
Не рекомендуется устанавливать <parameter>default_charset</parameter>
|
||
в пустое значение.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.input-encoding">
|
||
<term>
|
||
<parameter>input_encoding</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Эта опция используется для многобайтных модулей,
|
||
таких как mbstring и iconv. По умолчанию пусто.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.output-encoding">
|
||
<term>
|
||
<parameter>output_encoding</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Эта опция используется для многобайтных модулей,
|
||
таких как mbstring и iconv. По умолчанию пусто.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.internal-encoding">
|
||
<term>
|
||
<parameter>internal_encoding</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Эта опция используется для многобайтных модулей,
|
||
таких как mbstring и iconv. По умолчанию пусто. В это случае используется
|
||
<link linkend="ini.default-charset">default_charset</link>.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</para>
|
||
</section>
|
||
|
||
<section xml:id="ini.sect.path-directory">
|
||
<title>Пути и Директории</title>
|
||
<para>
|
||
<table>
|
||
<title>Конфигурационные Опции Путей и Директорий</title>
|
||
<tgroup cols="4">
|
||
<thead>
|
||
<row>
|
||
<entry>&Name;</entry>
|
||
<entry>&Default;</entry>
|
||
<entry>&Changeable;</entry>
|
||
<entry>&Changelog;</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry><link linkend="ini.include-path">include_path</link></entry>
|
||
<entry>".;/path/to/php/pear"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.open-basedir">open_basedir</link></entry>
|
||
<entry>NULL</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.doc-root">doc_root</link></entry>
|
||
<entry>NULL</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.user-dir">user_dir</link></entry>
|
||
<entry>NULL</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.user-ini.cache-ttl">user_ini.cache_ttl</link></entry>
|
||
<entry>"300"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.user-ini.filename">user_ini.filename</link></entry>
|
||
<entry>".user.ini"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.extension-dir">extension_dir</link></entry>
|
||
<entry>"/path/to/php"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.extension">extension</link></entry>
|
||
<entry>NULL</entry>
|
||
<entry>Только &php.ini;</entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.zend-extension">zend_extension</link></entry>
|
||
<entry>NULL</entry>
|
||
<entry>Только &php.ini;</entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.cgi.check-shebang-line">cgi.check_shebang_line</link></entry>
|
||
<entry>"1"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.cgi.discard-path">cgi.discard_path</link></entry>
|
||
<entry>"0"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.cgi.fix-pathinfo">cgi.fix_pathinfo</link></entry>
|
||
<entry>"1"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.cgi.force-redirect">cgi.force_redirect</link></entry>
|
||
<entry>"1"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.cgi.nph">cgi.nph</link></entry>
|
||
<entry>"0"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.cgi.redirect-status-env">cgi.redirect_status_env</link></entry>
|
||
<entry>NULL</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.cgi.rfc2616-headers">cgi.rfc2616_headers</link></entry>
|
||
<entry>"0"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.fastcgi.impersonate">fastcgi.impersonate</link></entry>
|
||
<entry>"0"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.fastcgi.logging">fastcgi.logging</link></entry>
|
||
<entry>"1"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
</para>
|
||
|
||
&ini.descriptions.title;
|
||
|
||
<para>
|
||
<variablelist>
|
||
<varlistentry xml:id="ini.include-path">
|
||
<term>
|
||
<parameter>include_path</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Указывает список директорий, в которых функции
|
||
<function>require</function>, <function>include</function>,
|
||
<function>fopen</function>, <function>file</function>,
|
||
<function>readfile</function> и <function>file_get_contents</function>
|
||
ищут файлы. Формат соответствует формату системной переменной окружения
|
||
<envar>PATH</envar>: список директорий,
|
||
разделённых двоеточием в Unix или точкой с запятой в Windows.
|
||
</para>
|
||
<para>
|
||
При поиске подключаемых файлов PHP отдельно рассматривает каждое
|
||
значение в include_path.
|
||
Он проверяет первый путь, если файл в нем не найден, то он переходит
|
||
к следующему, и так до тех пор, пока не найдёт подключаемый файл, либо
|
||
вернёт
|
||
<constant>E_WARNING</constant>
|
||
или <constant>E_ERROR</constant>.
|
||
Изменить директиву include_path во время выполнения скрипта
|
||
можно функцией <function>set_include_path</function>.
|
||
</para>
|
||
<para>
|
||
<example>
|
||
<title>include_path в Unix</title>
|
||
<programlisting role="php.ini">
|
||
<![CDATA[
|
||
include_path=".:/php/includes"
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
<para>
|
||
<example>
|
||
<title>include_path в Windows</title>
|
||
<programlisting role="php.ini">
|
||
<![CDATA[
|
||
include_path=".;c:\php\includes"
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
<para>
|
||
Использование <literal>.</literal> в include_path позволяет
|
||
задавать относительные пути для подключения файлов, так как
|
||
точка означает текущую директорию. Однако, более эффективно
|
||
использовать <literal>include './file'</literal>, чем заставлять
|
||
PHP каждый раз проверять текущую директорию при подключении каждого файла.
|
||
</para>
|
||
<note>
|
||
<para>
|
||
Переменные окружения (<literal>ENV</literal>) также доступны в .ini файлах.
|
||
Таким образом, можно ссылаться на домашнюю директорию с помощью директив
|
||
<literal>${LOGIN}</literal> и <literal>${USER}</literal>.
|
||
</para>
|
||
<para>
|
||
Переменные окружения могут отличаться между различными серверными API,
|
||
так как сами эти окружения отличаются друг от друга.
|
||
</para>
|
||
</note>
|
||
<para>
|
||
<example>
|
||
<title>Настройка include_path с помощью переменной окружения ${USER} в Unix</title>
|
||
<programlisting role="php.ini">
|
||
<![CDATA[
|
||
include_path = ".:${USER}/pear/php"
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.open-basedir">
|
||
<term>
|
||
<parameter>open_basedir</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Ограничивает для PHP доступ к файлам деревом каталогов,
|
||
включая сам файл.
|
||
</para>
|
||
<para>
|
||
Когда скрипт пытается получить доступ к файловой системе, например через
|
||
выражение <function>include</function> или функцию <function>fopen</function>,
|
||
PHP проверяет расположение файла. PHP откажется получать доступ к файлу, когда
|
||
файл лежит за пределами дерева каталогов. PHP разрешит каждую символическую
|
||
ссылку, поэтому невозможно обойти ограничение через символическую ссылку.
|
||
Символическая ссылка не разрешится, если файл не существует, а PHP будет сравнивать имя файла
|
||
с разрешённым путём <option>open_basedir</option>.
|
||
</para>
|
||
<para>
|
||
Опция <option>open_basedir</option> влияет не только на функции
|
||
для работы с файловой системой; например, если СУБД <literal>MySQL</literal> настроили
|
||
на работу с драйвером <literal>mysqlnd</literal>, директива <option>open_basedir</option>
|
||
будет влиять на работу инструкции <literal>LOAD DATA INFILE</literal>.
|
||
Большая часть расширенной функциональности PHP пользуется директивой <literal>open_basedir</literal>
|
||
таким способом.
|
||
</para>
|
||
<para>
|
||
Символ точки <systemitem class="filesystem">.</systemitem> указывает,
|
||
что PHP будет использовать рабочий каталог скрипта
|
||
как базовую директорию. Однако это снижает безопасность, поскольку рабочую директорию
|
||
скрипта легко изменить функцией <function>chdir</function>.
|
||
</para>
|
||
<para>
|
||
В файле <filename>httpd.conf</filename> директиву <option>open_basedir</option> можно
|
||
<link linkend="configuration.changes.apache">отключить</link> (например, для отдельных виртуальных хостов)
|
||
как и другие конфигурационные директивы: "<literal>php_admin_value open_basedir none</literal>".
|
||
</para>
|
||
<para>
|
||
В системах под управлением ОС Windows каталоги разделяют точкой с запятой. В остальных системах
|
||
директории разделяют двоеточием. Когда PHP работает как модуль веб-сервера Apache, пути
|
||
директивы <option>open_basedir</option> из родительских каталогов теперь автоматически наследуются.
|
||
</para>
|
||
<para>
|
||
Ограничение, которое устанавливает директива <option>open_basedir</option>, —
|
||
имя каталога, а не префикс.
|
||
</para>
|
||
<para>
|
||
По умолчанию разрешается открывать все файлы.
|
||
</para>
|
||
<note>
|
||
<simpara>
|
||
Значение директивы open_basedir можно сузить во время выполнения скрипта. Это означает, что если
|
||
в файле &php.ini; для директивы open_basedir установили значение <literal>/www/</literal>,
|
||
скрипт может сузить конфигурацию директивы до каталога <literal>/www/tmp/</literal> через функцию
|
||
<function>ini_set</function>. При перечислении ряда каталогов
|
||
константу <constant>PATH_SEPARATOR</constant> указывают как разделитель путей,
|
||
который не зависит от операционной системы.
|
||
</simpara>
|
||
<simpara>
|
||
Начиная с PHP 8.3.0 директива <option>open_basedir</option> больше не принимает
|
||
пути, в которых содержится родительский каталог <literal>..</literal>, когда
|
||
значение устанавливают во время выполнения функцией <function>ini_set</function>.
|
||
</simpara>
|
||
</note>
|
||
<note>
|
||
<para>
|
||
Директива open_basedir установит для директивы <link linkend="ini.realpath-cache-size">realpath_cache_size</link>
|
||
значение <literal>0</literal>, которое <emphasis>отключит</emphasis> realpath-кеш.
|
||
</para>
|
||
</note>
|
||
<caution>
|
||
<para>
|
||
Опция конфигурации <literal>open_basedir</literal> — просто дополнительная подстраховка,
|
||
которая не претендует всесторонность,
|
||
и поэтому на директиву нельзя полагаться, когда дело касается безопасности.
|
||
</para>
|
||
</caution>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.doc-root">
|
||
<term>
|
||
<parameter>doc_root</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
"Корневая директория" PHP на этом сервере. Используется только в
|
||
случае, если не пустая.
|
||
Если PHP не был скомпилирован с FORCE_REDIRECT, вам <emphasis>следует
|
||
</emphasis> установить doc_root, если вы используете PHP в качестве
|
||
CGI под любым веб-сервером (кроме IIS). Альтернативой является
|
||
использование конфигурационной директивы
|
||
<link linkend="ini.cgi.force-redirect">cgi.force_redirect</link>,
|
||
речь о которой идёт ниже.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.user-ini.cache-ttl">
|
||
<term>
|
||
<parameter>user_ini.cache_ttl</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.user-ini.filename">
|
||
<term>
|
||
<parameter>user_ini.filename</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.user-dir">
|
||
<term>
|
||
<parameter>user_dir</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Базовое имя директории, используемой в домашнем каталоге пользователя
|
||
для PHP файлов, например, <filename class="directory">public_html</filename>.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.extension-dir">
|
||
<term>
|
||
<parameter>extension_dir</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
В какой директории PHP должен искать динамически загружаемые модули.
|
||
Рекомендуется указывать абсолютный путь. Смотрите
|
||
также: <link linkend="ini.enable-dl">enable_dl</link> и <function>dl</function>.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.extension">
|
||
<term>
|
||
<parameter>extension</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Какие динамически загружаемые модули должны быть загружены при старте PHP.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.zend-extension">
|
||
<term>
|
||
<parameter>zend_extension</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Имя динамически загружаемого модуля Zend (например,
|
||
XDebug), который должен быть загружен при старте PHP.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.cgi.check-shebang-line">
|
||
<term>
|
||
<parameter>cgi.check_shebang_line</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Контролирует, нужно ли проверять первую строку <acronym>CGI</acronym>
|
||
PHP-скрипта на содержание <literal>#!</literal> (shebang).
|
||
Эта строка может быть необходима, если скрипт должен поддерживать как отдельный
|
||
запуск, так и с помощью PHP <acronym>CGI</acronym>. PHP в режиме
|
||
<acronym>CGI</acronym> пропускает эту строку и игнорирует её
|
||
содержимое, если данная директива включена.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.cgi.discard-path">
|
||
<term>
|
||
<parameter>cgi.discard_path</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Если разрешено, бинарный файл PHP CGI может безопасно располагаться вне веб-дерева
|
||
и люди не смогут обойти безопасность .htaccess.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.cgi.fix-pathinfo">
|
||
<term>
|
||
<parameter>cgi.fix_pathinfo</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Обеспечивает поддержку <emphasis>правильных</emphasis>
|
||
<literal>PATH_INFO</literal>/<literal>PATH_TRANSLATED</literal>
|
||
в <acronym>CGI</acronym>. Раньше PHP просто устанавливал
|
||
<literal>PATH_TRANSLATED</literal> в <literal>SCRIPT_FILENAME</literal>
|
||
и не обращал внимания на <literal>PATH_INFO</literal>.
|
||
Для получения дополнительной информации о <literal>PATH_INFO</literal>,
|
||
обратитесь к спецификации <acronym>CGI</acronym>. Установка этого
|
||
значения в <literal>1</literal> заставит PHP <acronym>CGI</acronym>
|
||
исправлять свой путь в соответствии со спецификацией. Значение 0
|
||
соответствует предыдущему поведению. По умолчанию опция включена.
|
||
Вы должны исправить свои скрипты так, чтобы они использовали
|
||
<literal>SCRIPT_FILENAME</literal> вместо <literal>PATH_TRANSLATED</literal>.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.cgi.force-redirect">
|
||
<term>
|
||
<parameter>cgi.force_redirect</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Директива cgi.force_redirect необходима для обеспечения безопасности
|
||
во время работы PHP в качестве <acronym>CGI</acronym> под большинством
|
||
веб-серверов. Если оставить её неопределённой, по умолчанию PHP включает эту
|
||
директиву. Вы можете выключить её <emphasis>на свой страх и
|
||
риск</emphasis>.
|
||
</para>
|
||
<note>
|
||
<para>
|
||
Пользователям Windows: При использовании IIS эта опция
|
||
<emphasis>должна</emphasis> быть отключена. Тоже самое необходимо
|
||
для OmniHTTPD и Xitami.
|
||
</para>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.cgi.nph">
|
||
<term>
|
||
<parameter>cgi.nph</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Если cgi.nph разрешена, cgi будет принудительно возвращать код 200 на каждый запрос.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.cgi.redirect-status-env">
|
||
<term>
|
||
<parameter>cgi.redirect_status_env</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Если cgi.force_redirect включена и вы работаете не под веб-сервером
|
||
Apache или Netscape (iPlanet), вам <emphasis>может</emphasis>
|
||
понадобиться установить переменную окружения, которую будет искать
|
||
PHP чтобы убедиться, что он может продолжать выполнение.
|
||
</para>
|
||
<note>
|
||
<para>
|
||
Установка этой переменной <emphasis>может</emphasis> повлечь за собой проблемы с
|
||
безопасностью, так что <emphasis>вы должны знать, что вы делаете</emphasis>.
|
||
</para>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.cgi.rfc2616-headers">
|
||
<term>
|
||
<parameter>cgi.rfc2616_headers</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Директива сообщает PHP, какой тип заголовков отправлять
|
||
с HTTP-кодом ответа. При отключённой директиве PHP отправляет
|
||
заголовок по стандарту <link xlink:href="&url.rfc;3875">RFC 3875</link> — "Status:",
|
||
который поддерживается Apache и другими веб-серверами.
|
||
При включённой директиве PHP отправит заголовки, которые соответствуют
|
||
стандарту <link xlink:href="&url.rfc;2616">RFC 2616</link>.
|
||
</para>
|
||
<para>
|
||
При включённой директиве и работе PHP в CGI-окружении наподобие
|
||
PHP-FPM вместо HTTP-заголовков ответа в стиле стандарта
|
||
RFC 2616 потребуется использовать эквивалент этих заголовков из стандарта RFC 3875,
|
||
например, вместо header("HTTP/1.0 404 Not found"); потребуется указать
|
||
header("Status: 404 Not Found");
|
||
</para>
|
||
<para>
|
||
Опцию включают, только если знают о последствиях.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.fastcgi.impersonate">
|
||
<term>
|
||
<parameter>fastcgi.impersonate</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Режим FastCGI на веб-серверах IIS (в ОС на базе WINNT) поддерживает возможность имперсонации прав
|
||
безопасности вызывающего клиента. Это помогает веб-серверу IIS определить контекст безопасности,
|
||
в котором выполняется запрос. Модуль mod_fastcgi под Apache пока
|
||
не поддерживает эту функцию (03/17/2002).
|
||
Директиву включают при работе под IIS. По умолчанию опция отключена.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.fastcgi.logging">
|
||
<term>
|
||
<parameter>fastcgi.logging</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Включает логирование SAPI при использовании FastCGI. Логирование
|
||
включено по умолчанию.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
</variablelist>
|
||
</para>
|
||
</section>
|
||
|
||
<section xml:id="ini.sect.file-uploads">
|
||
<title>Закачивание Файлов</title>
|
||
<para>
|
||
<table>
|
||
<title>Конфигурационные Опции Закачивания Файлов</title>
|
||
<tgroup cols="4">
|
||
<thead>
|
||
<row>
|
||
<entry>&Name;</entry>
|
||
<entry>&Default;</entry>
|
||
<entry>&Changeable;</entry>
|
||
<entry>&Changelog;</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry><link linkend="ini.file-uploads">file_uploads</link></entry>
|
||
<entry>"1"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.upload-tmp-dir">upload_tmp_dir</link></entry>
|
||
<entry>NULL</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.max-input-nesting-level">max_input_nesting_level</link></entry>
|
||
<entry>64</entry>
|
||
<entry><constant>INI_PERDIR</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.max-input-vars">max_input_vars</link></entry>
|
||
<entry>1000</entry>
|
||
<entry><constant>INI_PERDIR</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.upload-max-filesize">upload_max_filesize</link></entry>
|
||
<entry>"2M"</entry>
|
||
<entry><constant>INI_PERDIR</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.max-file-uploads">max_file_uploads</link></entry>
|
||
<entry>20</entry>
|
||
<entry><constant>INI_PERDIR</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
</para>
|
||
|
||
&ini.descriptions.title;
|
||
|
||
<para>
|
||
<variablelist>
|
||
<varlistentry xml:id="ini.file-uploads">
|
||
<term>
|
||
<parameter>file_uploads</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Разрешать или не разрешать
|
||
<link linkend="features.file-upload">закачивание файлов</link>. Смотрите также директивы
|
||
<link linkend="ini.upload-max-filesize">upload_max_filesize</link>,
|
||
<link linkend="ini.upload-tmp-dir">upload_tmp_dir</link> и
|
||
<link linkend="ini.post-max-size">post_max_size</link>.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.upload-tmp-dir">
|
||
<term>
|
||
<parameter>upload_tmp_dir</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Временная директория для хранения файлов при
|
||
передаче. Каталог должен быть доступен для записи пользователю,
|
||
от имени которого запустили PHP. PHP будет использовать системную директорию
|
||
по умолчанию, если каталог не указали.
|
||
</para>
|
||
<para>
|
||
Если к указанной директории нет прав на запись, PHP откатится обратно к системной
|
||
временной директории по умолчанию. Если включили директиву
|
||
<link linkend="ini.open-basedir">open_basedir</link>, то для успешной передачи файлов
|
||
необходимо разрешить системный каталог по умолчанию.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.upload-max-filesize">
|
||
<term>
|
||
<parameter>upload_max_filesize</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Максимальный размер закачиваемого файла.
|
||
</para>
|
||
<para>
|
||
<link linkend="ini.post-max-size">post_max_size</link> должен быть больше, чем это значение.
|
||
</para>
|
||
|
||
&ini.shorthandbytes;
|
||
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.max-file-uploads">
|
||
<term>
|
||
<parameter>max_file_uploads</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Максимально разрешённое количество одновременно закачиваемых файлов.
|
||
Пустые поля загрузки не рассматриваются этим ограничением.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</para>
|
||
</section>
|
||
|
||
<section xml:id="ini.sect.sql-general">
|
||
<title>Общий SQL</title>
|
||
<para>
|
||
<table>
|
||
<title>Конфигурационные Опции Общего SQL</title>
|
||
<tgroup cols="4">
|
||
<thead>
|
||
<row>
|
||
<entry>&Name;</entry>
|
||
<entry>&Default;</entry>
|
||
<entry>&Changeable;</entry>
|
||
<entry>&Changelog;</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry><link linkend="ini.sql.safe-mode">sql.safe_mode</link></entry>
|
||
<entry>"0"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry>Удалён в PHP 7.2.0</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
</para>
|
||
|
||
&ini.descriptions.title;
|
||
|
||
<para>
|
||
<variablelist>
|
||
<varlistentry xml:id="ini.sql.safe-mode">
|
||
<term>
|
||
<parameter>sql.safe_mode</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Если включена, функции соединения с базой данных, использующие
|
||
значения по умолчанию, будут использовать эти значения вместо
|
||
любых передаваемых аргументов. Для значений по умолчанию смотрите
|
||
документацию по функциям подключения соответствующей базы данных.
|
||
</para>
|
||
<warning>
|
||
<simpara>
|
||
Эта опция <emphasis>УДАЛЕНА</emphasis> в PHP 7.2.0.
|
||
</simpara>
|
||
</warning>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</para>
|
||
</section>
|
||
|
||
<section xml:id="ini.sect.windows">
|
||
<title>Особые настройки для ОС Windows</title>
|
||
<para>
|
||
<table>
|
||
<title>Особые опции конфигурации для ОС Windows</title>
|
||
<tgroup cols="4">
|
||
<thead>
|
||
<row>
|
||
<entry>&Name;</entry>
|
||
<entry>&Default;</entry>
|
||
<entry>&Changeable;</entry>
|
||
<entry>&Changelog;</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry><link linkend="ini.windows-show-crt-warning">windows.show_crt_warning</link></entry>
|
||
<entry>"0"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
</para>
|
||
|
||
&ini.descriptions.title;
|
||
|
||
<para>
|
||
<variablelist>
|
||
<varlistentry xml:id="ini.windows-show-crt-warning">
|
||
<term>
|
||
<parameter>windows.show_crt_warning</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
При включении данной директивы будут отображаться предупреждения Windows CRT.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</para>
|
||
</section>
|
||
|
||
</section>
|
||
<!-- 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:"~/.phpdoc/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
|
||
-->
|