1
0
mirror of https://github.com/php/doc-ru.git synced 2026-04-26 08:48:12 +02:00
Files
archived-doc-ru/reference/errorfunc/ini.xml
T
Andrey Gromov 3a98ba00a2 #73714
git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@341402 c90b9560-bf6c-de11-be94-00142212c4b1
2016-12-17 11:56:13 +00:00

521 lines
23 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: c4b31af250722e2a9e95c6550cdf933350679934 Maintainer: tmn Status: ready -->
<!-- Reviewed: no -->
<!-- $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>Доступно, начиная с PHP 4.3.0.</entry>
</row>
<row>
<entry><link linkend="ini.ignore-repeated-errors">ignore_repeated_errors</link></entry>
<entry>"0"</entry>
<entry>PHP_INI_ALL</entry>
<entry>Доступно, начиная с PHP 4.3.0.</entry>
</row>
<row>
<entry><link linkend="ini.ignore-repeated-source">ignore_repeated_source</link></entry>
<entry>"0"</entry>
<entry>PHP_INI_ALL</entry>
<entry>Доступно, начиная с PHP 4.3.0.</entry>
</row>
<row>
<entry><link linkend="ini.report-memleaks">report_memleaks</link></entry>
<entry>"1"</entry>
<entry>PHP_INI_ALL</entry>
<entry>Доступно, начиная с PHP 4.3.0.</entry>
</row>
<row>
<entry><link linkend="ini.track-errors">track_errors</link></entry>
<entry>"0"</entry>
<entry>PHP_INI_ALL</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.html-errors">html_errors</link></entry>
<entry>"1"</entry>
<entry>PHP_INI_ALL</entry>
<entry>PHP_INI_SYSTEM в PHP &lt;= 4.2.3.</entry>
</row>
<row>
<entry><link linkend="ini.xmlrpc-errors">xmlrpc_errors</link></entry>
<entry>"0"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Доступно, начиная с PHP 4.1.0.</entry>
</row>
<row>
<entry><link linkend="ini.xmlrpc-error-number">xmlrpc_error_number</link></entry>
<entry>"0"</entry>
<entry>PHP_INI_ALL</entry>
<entry>Доступно, начиная с PHP 4.1.0.</entry>
</row>
<row>
<entry><link linkend="ini.docref-root">docref_root</link></entry>
<entry>""</entry>
<entry>PHP_INI_ALL</entry>
<entry>Доступно, начиная с PHP 4.3.0.</entry>
</row>
<row>
<entry><link linkend="ini.docref-ext">docref_ext</link></entry>
<entry>""</entry>
<entry>PHP_INI_ALL</entry>
<entry>Доступно, начиная с PHP 4.3.2.</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>
</tbody>
</tgroup>
</table>
&ini.php.constants;
</para>
&ini.descriptions.title;
<para>
<variablelist>
<varlistentry xml:id="ini.error-reporting">
<term>
<parameter>error_reporting</parameter>
<type>integer</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>.
В PHP 4 значением по умолчанию было <constant>E_ALL</constant>
&amp; ~<constant>E_NOTICE</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 доступен новый уровень ошибок <constant>E_STRICT</constant>. Так как
<constant>E_STRICT</constant> не входит в состав <constant>E_ALL</constant>,
необходимо явно включать этот уровень ошибок. Включение
<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>integer</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>boolean</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>boolean</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>boolean</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>integer</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>boolean</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>boolean</type>
</term>
<listitem>
<para>
Игнорировать источник ошибок при пропуске повторяющихся сообщений. Когда
эта настройка включена, повторяющиеся сообщения об ошибках не будут
заноситься в журнал вне зависимости от того, в каких файлах и строках они происходят.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.report-memleaks">
<term>
<parameter>report_memleaks</parameter>
<type>boolean</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>boolean</type>
</term>
<listitem>
<para>
Если включена, последняя произошедшая ошибка будет первой в переменной
<varname>$php_errormsg</varname>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.html-errors">
<term>
<parameter>html_errors</parameter>
<type>boolean</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>boolean</type>
</term>
<listitem>
<para>
Если включена, то нормальное оповещение об ошибках отключается и, вместо него,
ошибки выводятся в формате XML-RPC.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.xmlrpc-error-number">
<term>
<parameter>xmlrpc_error_number</parameter>
<type>integer</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>
Имя файла, в который будут добавляться сообщения об ошибках. Файл
должен быть открыт для записи пользователем web сервера. Если
используется специальное значение <literal>syslog</literal>, то
сообщения будут посылаться в системный журнал. На Unix системах это
syslog(3), на Windows NT - журнал событий. Системный журнал не
поддерживается в Windows 95. См. также: <function>syslog</function>.
Если директива не задана, ошибки будут направляться в SAPI журналы.
Например, это могут быть журналы ошибок Apache или поток
<literal>stderr</literal> командной строки CLI.
Смотрите также функцию <function>error_log</function>.
</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
-->