PHP не ведет лог

grand_sbor

Новичок
PHP не ведет лог

Добрый день.

Дано: Debian с apache и php. Симптомы: php ничего не пишет в лог апача.

php-файлы апачем обрабатываются, проверил.

В php.ini написано
Код:
error_reporting = E_ALL & ~E_DEPRECATED
log_errors = On
Опция error_log не задана.

Используется именно этот файл, проверил с помощью php --ini.

Апач все "своё" исправно пишет в /var/log/apache2/error.log.

Что это может быть?
 

grand_sbor

Новичок
Автор оригинала: dimagolov
вот потому и не ведет... определи куда он будет писаться и все будет.
Мануал как бы намекает, что ошибки по умолчанию шлются в лог Апача, нет?
http://ru.php.net/manual/en/errorfunc.configuration.php#ini.error-log:
If this directive is not set, errors are sent to the SAPI error logger. For example, it is an error log in Apache or stderr in CLI.
Upd: Кроме того, проверил у себя на ноутбуке (Убунту), ровно то же самое показывает phpinfo, но в лог ошибки пишутся.
 

dimagolov

Новичок
кстати да, должно идти в лог апача. может скрипт переопределяет, тот который не пишет в лог? ты проверял конкретно генерацию ошибок после phpinfo()? и кстати, а как пхп-то исполняется?
 

grand_sbor

Новичок
Автор оригинала: dimagolov
кстати да, должно идти в лог апача. может скрипт переопределяет, тот который не пишет в лог? ты проверял конкретно генерацию ошибок после phpinfo()? и кстати, а как пхп-то исполняется?
Нет, не скрипт. Я написал тестовый скрипт, такой:
PHP:
<?php
print "test 1";
aaa();
print "test 2";
?>
Работает, как и ожидается. В error.log об ошибке ни слова. Если скормить этот же файл php в консоли, всё тоже ожидаемо:
Код:
php -e test.php 
test 1PHP Fatal error:  Call to undefined function aaa() in /var/www/test.php on line 3
 

флоппик

promotor fidei
Команда форума
Партнер клуба
кстати да, должно идти в лог апача.
Если как модуль. А вот про FCGI я сталкивался с тем, что эррор_лог не велся, но навскидку не вспомню, нужно доку читать.
 

Alexandre

PHPПенсионер
А вот про FCGI я сталкивался с тем, что эррор_лог не велся, но навскидку не вспомню, нужно доку читать
флопп,
а ты прикинь мозгами-то, если пхп как запущен как фсги, как он узнает куда писать (имя файла), и каким образом он это будет делать? Это два не связанных ничем, кроме как временного сокетного соединения, процесса.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
а ты прикинь мозгами-то, если пхп как запущен как фсги, как он узнает куда писать
Ты не поверишь - пхп как модуль тоже не знает, где лежит апачевский лог. Он ошибки выдает в STDERR. Разница в том, что FCGI шный STDERR ловить некому.

-~{}~ 08.09.10 22:42:

Более того, почитав мануал:

FastCGI uses a single connection for all the data associated with an application -- stdin, stdout, stderr, and environment variables. The data on the connection is encapsulated using a FastCGI protocol that allows stdin and the environment variables to share the same half connection (on the way in) and stdout and stderr to share the half connection (on the way out).

Так что должен ловить. А та проблема, которая вертелась у меня в голове - я вспомнил, php-fpm-овский STDERR почему-то не ловился лайти. Скорее всего, это был этот баг - http://redmine.lighttpd.net/issues/499
 

fixxxer

К.О.
Партнер клуба
/etc/php-fpm.conf

; Redirect worker stdout and stderr into main error log. If not set, stdout and
; stderr will be redirected to /dev/null according to FastCGI specs.
; Default Value: no
;catch_workers_output = yes
 
Сверху