1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-27 01:02:19 +01:00
Files
archived-doc-ru/reference/errorfunc/ini.xml
2021-01-05 20:16:26 +03:00

588 lines
26 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 86e6094e86b84a51d00ab217ac50ce8dde33d82a Maintainer: tmn Status: ready -->
<!-- Reviewed: yes Maintainer: sergey -->
<!-- $Revision$ -->
<section xml:id="errorfunc.configuration" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.runtime;
&extension.runtime;
<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.error-reporting">error_reporting</link></entry>
<entry>NULL</entry>
<entry>PHP_INI_ALL</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.display-errors">display_errors</link></entry>
<entry>"1"</entry>
<entry>PHP_INI_ALL</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.display-startup-errors">display_startup_errors</link></entry>
<entry>"0"</entry>
<entry>PHP_INI_ALL</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.log-errors">log_errors</link></entry>
<entry>"0"</entry>
<entry>PHP_INI_ALL</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.log-errors-max-len">log_errors_max_len</link></entry>
<entry>"1024"</entry>
<entry>PHP_INI_ALL</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.ignore-repeated-errors">ignore_repeated_errors</link></entry>
<entry>"0"</entry>
<entry>PHP_INI_ALL</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.ignore-repeated-source">ignore_repeated_source</link></entry>
<entry>"0"</entry>
<entry>PHP_INI_ALL</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.report-memleaks">report_memleaks</link></entry>
<entry>"1"</entry>
<entry>PHP_INI_ALL</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.track-errors">track_errors</link></entry>
<entry>"0"</entry>
<entry>PHP_INI_ALL</entry>
<entry>Объявлено устаревшим в PHP 7.2.0.</entry>
</row>
<row>
<entry><link linkend="ini.html-errors">html_errors</link></entry>
<entry>"1"</entry>
<entry>PHP_INI_ALL</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.xmlrpc-errors">xmlrpc_errors</link></entry>
<entry>"0"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.xmlrpc-error-number">xmlrpc_error_number</link></entry>
<entry>"0"</entry>
<entry>PHP_INI_ALL</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.docref-root">docref_root</link></entry>
<entry>""</entry>
<entry>PHP_INI_ALL</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.docref-ext">docref_ext</link></entry>
<entry>""</entry>
<entry>PHP_INI_ALL</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.error-prepend-string">error_prepend_string</link></entry>
<entry>NULL</entry>
<entry>PHP_INI_ALL</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.error-append-string">error_append_string</link></entry>
<entry>NULL</entry>
<entry>PHP_INI_ALL</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.error-log">error_log</link></entry>
<entry>NULL</entry>
<entry>PHP_INI_ALL</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.syslog.facility">syslog.facility</link></entry>
<entry>"LOG_USER"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Доступно, начиная с PHP 7.3.0.</entry>
</row>
<row>
<entry><link linkend="ini.syslog.filter">syslog.filter</link></entry>
<entry>"no-ctrl"</entry>
<entry>PHP_INI_ALL</entry>
<entry>Доступно, начиная с PHP 7.3.0.</entry>
</row>
<row>
<entry><link linkend="ini.syslog.ident">syslog.ident</link></entry>
<entry>"php"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Доступно, начиная с PHP 7.3.0.</entry>
</row>
</tbody>
</tgroup>
</table>
&ini.php.constants;
</para>
&ini.descriptions.title;
<para>
<variablelist>
<varlistentry xml:id="ini.error-reporting">
<term>
<parameter>error_reporting</parameter>
<type>int</type>
</term>
<listitem>
<para>
Задаёт уровень протоколирования ошибки. Параметр может быть либо числом,
представляющим битовое поле, либо именованной константой.
Соответствующие уровни и константы приведены в разделе
<link linkend="errorfunc.constants">Предопределённые константы</link>,
а также в &php.ini;. Для установки настройки во время выполнения используйте функцию
<function>error_reporting</function>. Смотрите также описание директивы
<link linkend="ini.display-errors">display_errors</link>.
</para>
<para>
В PHP 5.3 и новее, значение по умолчанию равно
<constant>E_ALL</constant> &amp;
~<constant>E_NOTICE</constant> &amp;
~<constant>E_STRICT</constant> &amp;
~<constant>E_DEPRECATED</constant>. При этой настройке не отображаются уровни ошибок
<constant>E_NOTICE</constant>, <constant>E_STRICT</constant>
и <constant>E_DEPRECATED</constant>. Можно отображать их при разработке.
До версии PHP 5.3.0, значением по умолчанию было
<constant>E_ALL</constant> &amp;
~<constant>E_NOTICE</constant> &amp;
~<constant>E_STRICT</constant>.
</para>
<note>
<para>
Включение <constant>E_NOTICE</constant> во время разработки имеет ряд преимуществ.
Для отладки: NOTICE сообщения могут предупреждать о возможных ошибках в коде.
Например, использование не проинициализированных переменных вызовет подобное
сообщение. Это очень полезно при поиске опечаток и экономит время при отладке.
NOTICE сообщения также предупреждают о плохом стиле. Например,
<literal>$arr[item]</literal> лучше писать так:
<literal>$arr['item']</literal> с тех пор, как PHP начал интерпретировать
<literal>"item"</literal> как константу. Если это не константа, PHP
принимает это выражение за строковый индекс элемента массива.
</para>
</note>
<note>
<para>
До PHP 5.4.0
<constant>E_STRICT</constant> не был включён в состав <constant>E_ALL</constant>,
поэтому необходимо явно включать этот уровень ошибок в PHP &lt; 5.4.0. Включение
<constant>E_STRICT</constant> во время разработки также имеет свои преимущества.
STRICT сообщения предлагают подсказки, которые могут помочь обеспечить лучшую
функциональную и обратную совместимость вашего кода. Эти сообщения могут включать в
себя такие вещи, как вызов нестатических методов статически, определение свойств в
совместимого класса, в то время как они уже определены в используемом трейте, и до
PHP 5.3 некоторые устаревшие возможности также будут выдавать ошибки уровня
<constant>E_STRICT</constant>, такие как присвоение объектов по ссылке при
создании экземпляра.
</para>
</note>
<note>
<title>PHP-константы за пределами PHP</title>
<para>
Использование PHP-констант за пределами PHP, например в файле
<filename>httpd.conf</filename>, не имеет смысла, так как в таких случаях требуются
целочисленные значения (<type>int</type>). Более того, с течением времени будут
добавляться новые уровни ошибок, а максимальное значение константы
<constant>E_ALL</constant> соответственно будет расти. Поэтому в месте, где
предполагается указать <constant>E_ALL</constant>, лучше задать большое целое число,
чтобы перекрыть все возможные битовые поля. Таким числом может быть, например,
<literal>2147483647</literal> (оно включит все возможные ошибки, не
только <constant>E_ALL</constant>).
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.display-errors">
<term>
<parameter>display_errors</parameter>
<type>string</type>
</term>
<listitem>
<para>
Эта настройка определяет, требуется ли выводить ошибки на экран вместе
с остальным выводом, либо ошибки должны быть скрыты от пользователя.
</para>
<para>
Значение <literal>"stderr"</literal> посылает ошибки в поток <literal>stderr</literal>
вместо <literal>stdout</literal>. Значение доступно в версии PHP 5.2.4. В ранних версиях
эта директива имела тип <type>bool</type>.
</para>
<note>
<para>
Эта функциональность предназначена только для разработки и не должен использоваться в
готовых производственных системах (например, системах, имеющих доступ в интернет).
</para>
</note>
<note>
<para>
Несмотря на то, что display_errors может быть установлена во время выполнения
(функцией <function>ini_set</function>), это ни на что не повлияет, если в скрипте есть
фатальные ошибки. Это обусловлено тем, что ожидаемые действия программы во время
выполнения не получат управления (не будут выполняться).
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.display-startup-errors">
<term>
<parameter>display_startup_errors</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Даже если display_errors включена, ошибки, возникающие во время запуска PHP, не будут
отображаться. Настойчиво рекомендуем включать директиву display_startup_errors только
для отладки.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.log-errors">
<term>
<parameter>log_errors</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Отвечает за выбор журнала, в котором будут сохраняться сообщения об ошибках. Это
может быть журнал сервера или <link linkend="ini.error-log">error_log</link>.
Применимость этой настройки зависит от конкретного сервера.
</para>
<note>
<para>
Настоятельно рекомендуем при работе на готовых работающих
web сайтах протоколировать ошибки там, где они отображаются.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.log-errors-max-len">
<term>
<parameter>log_errors_max_len</parameter>
<type>int</type>
</term>
<listitem>
<para>
Задание максимальной длины log_errors в байтах. В
<link linkend="ini.error-log">error_log</link> добавляется информация
об источнике. Значение по умолчанию 1024. Установка значения в 0
позволяет снять ограничение на длину log_errors. Это ограничение
распространяется на записываемые в журнал ошибки, на отображаемые ошибки,
а также на <varname>$php_errormsg</varname>, но не на явно вызываемые функции,
такие как <function>error_log</function>.
</para>
&ini.shorthandbytes;
</listitem>
</varlistentry>
<varlistentry xml:id="ini.ignore-repeated-errors">
<term>
<parameter>ignore_repeated_errors</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Не заносить в журнал повторяющиеся ошибки. Ошибка считается
повторяющейся, если происходит в том же файле и в той же строке, и если настройка
<link linkend="ini.ignore-repeated-source">ignore_repeated_source</link> выключена.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.ignore-repeated-source">
<term>
<parameter>ignore_repeated_source</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Игнорировать источник ошибок при пропуске повторяющихся сообщений. Когда
эта настройка включена, повторяющиеся сообщения об ошибках не будут
заноситься в журнал вне зависимости от того, в каких файлах и строках они происходят.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.report-memleaks">
<term>
<parameter>report_memleaks</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Если настройка включена (по умолчанию), будет формироваться отчёт об утечках памяти,
зафиксированных менеджером памяти Zend. На POSIX платформах этот отчёт будет
направляться в поток stderr. На Windows платформах он будет посылаться в отладчик
функцией OutputDebugString(), просмотреть отчёт в этом случае можно с помощью утилит,
вроде <link xlink:href="&url.dbgview;">DbgView</link>. Эта настройка имеет
смысл в сборках, предназначенных для отладки. При этом
<constant>E_WARNING</constant> должна быть включена в список error_reporting.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.track-errors">
<term>
<parameter>track_errors</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Если включена, последняя произошедшая ошибка будет первой в переменной
<varname>$php_errormsg</varname>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.html-errors">
<term>
<parameter>html_errors</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Если разрешена, сообщения об ошибках будут включать теги HTML. Фомат для
HTML-ошибок производит нажимаемые ссылки, ведущие на описание ошибки, либо
функии, в которой она произошла. За такие ссылки ответственны
<link linkend="ini.docref-root">docref_root</link> и
<link linkend="ini.docref-ext">docref_ext</link>.
</para>
<para>
Если запрещена, то ошибки будут выдаваться простым текстом, без форматирования.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.xmlrpc-errors">
<term>
<parameter>xmlrpc_errors</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Если включена, то нормальное оповещение об ошибках отключается и, вместо него,
ошибки выводятся в формате XML-RPC.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.xmlrpc-error-number">
<term>
<parameter>xmlrpc_error_number</parameter>
<type>int</type>
</term>
<listitem>
<para>
Используется в качестве значения XML-RPC элемента faultCode.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.docref-root">
<term>
<parameter>docref_root</parameter>
<type>string</type>
</term>
<listitem>
<para>
Новый формат ошибок содержит ссылку на страницу с описанием ошибки или
функции, вызвавшей эту ошибку. Можно разместить копию
описаний ошибок и функций локально и задать ini директиве значение
URL этой копии. Если, например, локальная копия описаний доступна по
адресу <literal>"/manual/"</literal>, достаточно прописать
<userinput>docref_root=/manual/</userinput>. Дополнительно, необходимо
задать значение директиве docref_ext, отвечающей за соответствие
расширений файлов файлам описаний вашей локальной копии,
<userinput>docref_ext=.html</userinput>. Также возможно использование
внешних ссылок. Например,
<userinput>docref_root=http://manual/en/</userinput> или
<userinput>docref_root="http://landonize.it/?how=url&amp;theme=classic&amp;filter=Landon
&amp;url=http%3A%2F%2Fwww.php.net%2F"</userinput>
</para>
<para>
В большинстве случаев вам потребуется, чтобы значение docref_root оканчивалось
слешем <literal>"/"</literal>. Тем не менее, бывают случаи, когда
это не требуется (смотрите выше, второй пример).
</para>
<note>
<para>
Эта функциональность предназначена только для разработки, так как он облегчает
поиск описаний функций и ошибок. Не используйте его в готовых
производственных системах (например, имеющих доступ в интернет).
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.docref-ext">
<term>
<parameter>docref_ext</parameter>
<type>string</type>
</term>
<listitem>
<para>
См. <link linkend="ini.docref-root">docref_root</link>.
</para>
<note>
<para>
Значение docref_ext должно начинаться с точки <literal>"."</literal>.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.error-prepend-string">
<term>
<parameter>error_prepend_string</parameter>
<type>string</type>
</term>
<listitem>
<para>
Строка, которая будет выводиться непосредственно перед сообщением об
ошибке.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.error-append-string">
<term>
<parameter>error_append_string</parameter>
<type>string</type>
</term>
<listitem>
<para>
Строка, которая будет выводиться после сообщения об ошибке.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.error-log">
<term>
<parameter>error_log</parameter>
<type>string</type>
</term>
<listitem>
<para>
Имя файла, в который будут добавляться сообщения об ошибках. Файл
должен быть открыт для записи пользователем веб-сервера. Если
используется специальное значение <literal>syslog</literal>, то
сообщения будут посылаться в системный журнал. На Unix-системах это
syslog(3), на Windows NT - журнал событий. См. также: <function>syslog</function>.
Если директива не задана, ошибки будут направляться в SAPI журналы.
Например, это могут быть журналы ошибок Apache или поток
<literal>stderr</literal> командной строки CLI.
Смотрите также функцию <function>error_log</function>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.syslog.facility">
<term>
<parameter>syslog.facility</parameter>
<type>string</type>
</term>
<listitem>
<para>
Указывает, какой тип программы регистрирует сообщение.
Действует только в том случае, если опция <link linkend="ini.error-log">error_log</link> установлена в "syslog".
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.syslog.filter">
<term>
<parameter>syslog.filter</parameter>
<type>string</type>
</term>
<listitem>
<para>
Указывает тип фильтра для фильтрации регистрируемых сообщений.
Разрешённые символы передаются без изменений; все остальные записываются в шестнадцатеричном представлении с префиксом <literal>\x</literal>.
Существует три поддерживаемых типа фильтров:
<itemizedlist>
<listitem>
<simpara><literal>all</literal> все символы</simpara>
</listitem>
<listitem>
<simpara><literal>no-ctrl</literal> все символы, кроме управляющих</simpara>
</listitem>
<listitem>
<simpara><literal>ascii</literal> все печатные символы ASCII и <literal>NL</literal></simpara>
</listitem>
</itemizedlist>
Действует только в том случае, если опция <link linkend="ini.error-log">error_log</link> установлена в "syslog".
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.syslog.ident">
<term>
<parameter>syslog.ident</parameter>
<type>string</type>
</term>
<listitem>
<para>
Определяет строку идентификатора, которая добавляется к каждому сообщению.
Действует только в том случае, если опция <link linkend="ini.error-log">error_log</link> установлена в "syslog".
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</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
-->