Я запускаю apache2 с php5 на Linux Mint 13 Maya. Я определил виртуальный хост и эти две записи:
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Это вызывает ошибку и доступ к журналам в var/log/apache2
.
Я хочу, чтобы мои ошибки PHP записывались в журнал ошибок PHP. В моем /etc/php5/apache2/php.ini
Я установил:
display_errors = On
log_errors = On
error_log = /var/log/php-errors.log
log_errors_max_len = 0
error_reporting = E_ALL | E_STRICT
Файл журнала /var/log/php-errors.log
был сгенерирован, но все, что он зарегистрировал, это два предупреждения о том, что некоторые модули уже загружены. Я попытался закомментировать директивы журнала в определении виртуального хоста, но это ничего не изменило, все ошибки по-прежнему регистрируются в журнале apache.
Что мне здесь не хватает?
Возможно, что разрешений недостаточно для записи в этот файл; вы также должны убедиться, что каталог также доступен.
Пример того, как это было в моей системе (это была стандартная установка Debian wheezy):
$ ls -ld /var/log/apache2/
drwxr-x--- 2 root adm 4096 Sep 4 15:59 /var/log/apache2/
$ ls -ld /var/log/apache2/php-error.log
-rw-r--r-- 1 www-data www-data 0 Jul 23 11:07 /var/log/apache2/php-error.log
Это не сработало, потому что каталог, содержащий php-error.log
был недоступен. К счастью, mod_php (или apache2?) Возвращается, чтобы записать его в журнал ошибок VirtualHosts.
В моем случае это было легко исправить, применив chmod o+rx /var/log/apache2/
но ваши соображения безопасности могут отличаться. После исправления:
$ ls -ld /var/log/apache2/
drwxr-xr-x 2 root adm 4096 Sep 4 15:59 /var/log/apache2/
И с этим изменением это сработало.
PS: Во-первых, у меня была та же проблема, что и у вас, не мог решить ее за день. Поиск в Google ничего не дал. Думал написать вопрос по serverfault. При подготовке заголовка я получил предложения, и ваш второй хит. Я понял, что напишу повторяющийся вопрос, поэтому подумал, что напишу комментарий на ваш. Но потом я захотел написать больше и подумал о том, чтобы написать ответ, который не решит проблему, но также приведет к моей точке зрения, может быть, кто-то другой может помочь. И пока готовил ответ, я нашел решение. Это просто фантастика о ... ну, обо всем здесь. serverfault / stackexchange помог мне найти решение самостоятельно, неявно с помощью других. Думаю, не может стать лучше (кроме того, что решил это самостоятельно).