Краткое разъяснение конфигурационных
директив.
-
error_reporting
int
-
Задаёт уровень протоколирования ошибки. Параметр может быть либо числом,
представляющим битовое поле, либо именованной константой.
Соответствующие уровни и константы приведены в разделе
Предопределённые константы,
а также в php.ini. Для установки настройки во время выполнения используйте функцию
error_reporting(). Смотрите также описание директивы
display_errors.
Значение по умолчанию равно E_ALL.
До PHP 8.0.0 значение по умолчанию было:
E_ALL &
~E_NOTICE &
~E_STRICT &
~E_DEPRECATED.
При этой настройке не отображаются уровни ошибок E_NOTICE,
E_STRICT и E_DEPRECATED.
Замечание:
PHP-константы за пределами PHP
PHP-константы не работают за пределами PHP, поэтому в файлах наподобие
httpd.conf указывают не названия,
а целочисленные (int) значения констант. По мере добавления
новых уровней ошибок значение константы E_ALL возрастает,
поэтому вместо текущего значения константы E_ALL лучше сразу указать
число 2147483647, которое установит тридцать одно битовое поле вместо текущих пятнадцати
и включит вывод всех текущих и будущих ошибок.
-
display_errors
string
-
Настройка определяет, требуется ли выводить ошибки на экран вместе
с остальным выводом или скрывать ошибки от пользователя.
-
Off — скрывать ошибки.
-
On или stdout — выводить ошибки в поток stdout. Это значение по умолчанию.
-
stderr — выводить ошибки в поток stderr.
Вывод ошибок в стандартный поток ошибок полезен только при работе с SAPI-интерфейсами CLI, phpdbg и CGI.
В файлах конфигурации, которые входят в дистрибутив PHP, для директивы устанавливаются следующие значения:
в php.ini-development —
On; в php.ini-production
— Off.
Замечание:
Вывод ошибок включают только в целях разработки.
В производственных системах с доступом к интернету вывод ошибок включать нельзя.
Замечание:
Включение директивы display_errors функцией ini_set() не сработает
и сообщение об ошибке не появится в выводе, если скрипт содержит синтаксическую ошибку
или другую критическую ошибку, которая возникла до этапа выполнения.
-
display_startup_errors
bool
-
Настройка управляет выводом ошибок, которые возникают на этапе запуска PHP;
директива display_errors не влияет на вывод ошибок инициализации.
Директиву display_startup_errors включают только для отладки.
-
log_errors
bool
-
Указывает, записывать ли сообщения об ошибках скрипта в лог ошибок сервера
или в место, которое определяет директива error_log.
Место, в которое будут отправляться ошибки, зависит от сервера.
Замечание:
Разработчики, которые серьёзно относятся к безопасности, записывают ошибки в журнал,
а не выводят сообщения об ошибках на рабочих сайтах.
-
log_errors_max_len
int
-
Устанавливает максимальную длину сообщения об ошибке скрипта в байтах. Логирование
ошибок включают директивой log_errors. В журнал ошибок, путь к которому определяет директива
error_log, добавляется информация
об источнике. Значение по умолчанию равно 1024 байтам, а значение 0
снимает ограничение на длину сообщения. Ограничение длины
распространяется на ошибки, которые записываются в журнал ошибок или выводятся на экран,
и последнюю ошибку, которую PHP генерирует и записывает в переменную $php_errormsg,
но не на явный вызов функций наподобие error_log().
Объём измеряется в байтах, если значение параметра указали как целое число (int).
Параметр также принимает значения в сокращённой нотации, которую описывает раздел FAQ.
-
ignore_repeated_errors
bool
-
Отключает запись в журнал ошибок, которые повторяются. PHP считает ошибку
повторной, если она возникает в том же файле и в той же строке, и если включили опцию
ignore_repeated_source.
-
ignore_repeated_source
bool
-
Игнорировать источник ошибок при пропуске повторяющихся сообщений. Когда
эта настройка включена, повторяющиеся сообщения об ошибках не будут
заноситься в журнал вне зависимости от того, в каких файлах и строках они происходят.
-
report_memleaks
bool
-
Если настройка включена (по умолчанию), будет формироваться отчёт об утечках памяти,
зафиксированных менеджером памяти Zend. На POSIX платформах этот отчёт будет
направляться в поток stderr. На Windows платформах он будет посылаться в отладчик
функцией OutputDebugString(), просмотреть отчёт в этом случае можно с помощью утилит,
вроде » DbgView. Эта настройка имеет
смысл в сборках, предназначенных для отладки. При этом
E_WARNING должна быть включена в список error_reporting.
Внимание
Начиная с PHP 8.5.0 функциональность УСТАРЕЛА.
Полагаться на функциональность настоятельно не рекомендуют.
-
track_errors
bool
-
Если включена, последняя произошедшая ошибка будет первой в переменной
$php_errormsg.
-
html_errors
bool
-
Если директиву включили, сообщения об ошибках будут включать HTML-теги. Формат для
HTML-ошибок создаёт интерактивные сообщения, которые направляют пользователя на страницу,
которая описывает ошибку или функцию, которая вызвала ошибку. На такие ссылки влияют
директивы docref_root
и docref_ext.
Если директиву выключили, ошибки будут выдаваться простым текстом, без форматирования.
-
xmlrpc_errors
bool
-
Если включена, то нормальное оповещение об ошибках отключается и, вместо него,
ошибки выводятся в формате XML-RPC.
-
xmlrpc_error_number
int
-
Используется в качестве значения XML-RPC элемента faultCode.
-
docref_root
string
-
Новый формат ошибок содержит ссылку на страницу с описанием ошибки или
функции, вызвавшей эту ошибку. Можно разместить копию
описаний ошибок и функций локально и задать ini директиве значение
URL этой копии. Если, например, локальная копия описаний доступна по
адресу "/manual/", достаточно прописать
docref_root=/manual/. Дополнительно, необходимо
задать значение директиве docref_ext, отвечающей за соответствие
расширений файлов файлам описаний вашей локальной копии,
docref_ext=.html. Также возможно использование
внешних ссылок. Например,
docref_root=http://manual/en/ или
docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon
&url=http%3A%2F%2Fwww.php.net%2F"
В большинстве случаев вам потребуется, чтобы значение docref_root оканчивалось
слешем "/". Тем не менее, бывают случаи, когда
это не требуется (смотрите выше, второй пример).
Замечание:
Эта функциональность предназначена только для разработки, так как он облегчает
поиск описаний функций и ошибок. Не используйте его в готовых
производственных системах (например, имеющих доступ в интернет).
-
docref_ext
string
-
Смотрите docref_root.
Замечание:
Значение docref_ext должно начинаться с точки ".".
-
error_prepend_string
string
-
Строка, которая будет выводиться непосредственно перед сообщением об ошибке.
Используется только тогда, когда на экране отображается сообщение об ошибке.
Основная цель - добавить дополнительную HTML-разметку к сообщению об ошибке.
-
error_append_string
string
-
Строка, которая будет выводиться после сообщения об ошибке.
Используется только тогда, когда на экране отображается сообщение об ошибке.
Основная цель - добавить дополнительную HTML-разметку к сообщению об ошибке.
-
error_log
string
-
Имя файла, в который будут добавляться сообщения об ошибках. Файл
должен быть открыт для записи пользователем веб-сервера. Если
используется специальное значение syslog, то
сообщения будут посылаться в системный журнал. На Unix-системах это
syslog(3), на Windows NT - журнал событий. Смотрите также: syslog().
Если директива не задана, ошибки будут направляться в SAPI журналы.
Например, это могут быть журналы ошибок Apache или поток
stderr командной строки CLI.
Смотрите также функцию error_log().
-
error_log_mode
int
-
Режим файла, описанного в error_log.
-
syslog.facility
string
-
Указывает, какой тип программы регистрирует сообщение.
Действует только в том случае, если опция error_log установлена в "syslog".
-
syslog.filter
string
-
Указывает тип фильтра для фильтрации регистрируемых сообщений.
Разрешённые символы передаются без изменений; все остальные записываются в шестнадцатеричном представлении с префиксом \x.
-
all – строка будет разделена
на символы новой строки и все символы будут переданы без изменений
-
ascii – строка будет разделена
на символы новой строки, а любые непечатаемые 7-битные символы ASCII будут экранированы
-
no-ctrl – строка будет разделена
на символы новой строки, а любые непечатаемые символы будут экранированы
-
raw – все символы передаются в системный
журнал без изменений, без разделения на новые строки (идентично PHP до 7.3)
Параметр влияет на ведение журнала через error_log установленного в "syslog" и вызовы syslog().
Замечание:
Тип фильтра raw доступен начиная с PHP 7.3.8 и PHP 7.4.0.
Директива не поддерживается в Windows.
-
syslog.ident
string
-
Определяет строку идентификатора, которая добавляется к каждому сообщению.
Действует только в том случае, если опция error_log установлена в "syslog".