6

Я только что обновил свой сервер до 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 ответ1

0

Я думаю, что здесь есть только общие ошибки 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 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .