Как записать ошибку php в отдельный файл?

Я только что обновил свой сервер до Fedora 17 и объединил некоторые файлы конфигурации, содержащие .rpmnew в существующие. Я успешно регистрирую мои ошибки php в отдельном файле журнала, сохраняя следующее в php.ini:

log_errors = On
error_log = /var/log/php-errors.log

Я не уверен, почему ошибки регистрируются в /var/log/httpd/error_log после обновления, несмотря на сохранение настроек выше.

Также,

$ ls -l /var/log/php-errors.log
-rwxrwxr--. 1 apache myself 232 Dec 13 16:49 /var/log/php-errors.log

показывает, что apache владел файлом журнала ошибок php.

Что может быть причиной того, что ошибки PHP регистрируются в файле журнала ошибок apache?

1 ответ

Я думаю, что здесь только общие ошибки Apache, которые видны в /var/log/httpd/error_log,

Я бы вставил вызов error_log('test'); в некоторую логику PHP, которая, как известно, интерпретируется, когда обновляется какая-то конкретная страница, и если это не видно в /var/log/php-errors.log тогда я подозреваю, что версии обновлены, чтобы иметь какую-то другую конфигурацию или схему разрешений, из-за которой старая конфигурация перестала работать.

Я бы рекомендовал пройти через раздел "Обработка ошибок и ведение журнала" в /etc/php/php.iniи проверка правильности значений для других директив. Директива error_reporting должен быть установлен в E_ALL или же E_ALL & ~E_DEPRECATED & ~E_STRICT, Директива log_errors должно быть On,

Если для файла указано только имя файла (но без пути) error_logтогда файл появится в том же каталоге, что и скрипт PHP, который вызывает error_log(...),

Я также рекомендовал бы указать /tmp/php_error_log за error_log, обновляя страницу, а затем ls /tmp чтобы увидеть, если файл там.

Если файла нет, войдите в систему как root и выполните поиск по имени файла во всей файловой системе, чтобы увидеть, где он оказался.

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

Я могу сказать, что в Arch Linux с Apache 2.4, PHP 5.5.11 и systemd версии 212-1 приведенная выше конфигурация приведет к тому, что журнал ошибок PHP окажется где-то похожим на /tmp/systemd-private-65d4c3e3cc534155bcf3ec708c2362f6-httpd.service-h8MSsD/tmp/php_error_log,

Другие вопросы по тегам