Изменение того, где PHP регистрирует синтаксические ошибки

#php #error-handling #syntax-error

#php #обработка ошибок #синтаксическая ошибка

Вопрос:

Как бы мне изменить, где PHP регистрирует синтаксические ошибки? У меня есть несколько человек, работающих на одном сервере, и я хочу иметь возможность отправлять свои собственные журналы в пользовательский файл, чтобы я не просматривал ошибки всех остальных.

Я могу это сделать:

 error_reporting(E_ALL);
ini_set('display_errors','On');
ini_set('error_log','path/to/mylogfile.log');
  

И это работает для некоторых ошибок, но для фактических синтаксических ошибок журналы по-прежнему отправляются в master /var/log/httpd/error_log . Как мне сделать так, чтобы синтаксические ошибки отправлялись в мой пользовательский файл журнала?

Ответ №1:

Поскольку файл не может быть правильно проанализирован, ini_set функция также не выполняется, и новый журнал ошибок не установлен. Вам нужно установить php_value error_log /path/to/myfile.log в .htaccess файле или глобальной конфигурации сервера (я предполагаю, что вы используете Apache).

Ответ №2:

Учитывая, что синтаксические ошибки препятствуют запуску PHP, вы не сможете установить пути к журналам через PHP. Это ситуация с курицей перед яйцом.

Альтернативами могут быть:

  • Измените журнал ошибок на уровне веб-сервера
  • Включить вывод сообщений об ошибках в браузер

Я бы предложил последнее.