Включить ведение журнала ошибок на PHP-FPM 7 с Nginx?

По сути, это то же самое, что и эти вопросы:

https: // stackoverflow. com / questions / 8677493 / php-fpm-doesnt-write-to-error-log

Nginx не регистрирует ошибки PHP

НО ответы там, похоже, не работают в Ubuntu 16.04 с PHP 7 .

/etc/php/7.0/fpm/pool.d/www.conf :

catch_workers_output = yes
php_flag[display_errors] = on
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on

/var/log/fpm-php.www.log существует и принадлежит www-data .

/etc/php/7.0/fpm/php.ini :

log_errors = On

Серверный блок виртуального хоста Nginx

access_log /var/log/myapp/access.log;
error_log /var/log/myapp/error.log error;

/var/log/myapp/access.log существует и принадлежит www- данные .

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

Я просмотрел все предложения по другому вопросу, но не нашел подходящего ответа. Я предполагаю, что что-то изменилось с тех пор, как был опубликован этот ответ. Есть предложения?

5
задан 23 May 2017 в 14:33
1 ответ

Комментарий выше от the_nuts помог мне решить эту проблему. Каталог и файл не существуют.

Для диагностики я добавил:

print("\n\n<br><br>log_errors: ".ini_get('log_errors'));
print("\n\n<br><br>error_log: ".ini_get('error_log'));

в начало моего кода (плагин WordPress). Это выводило:

log_errors: 1
error_log: /usr/local/etc/php-fpm.d/fpm.log 

В терминале я использовал ls , чтобы узнать, что файл и каталог отсутствуют, т.е.

ls /usr/local/etc/php-fpm.d/fpm.log
ls /usr/local/etc/php-fpm.d/

выведено

ls: cannot access '/usr/local/etc/php-fpm.d/fpm.log': No such file or directory
ls: cannot access '/usr/local/etc/php-fpm.d': No such file or directory

Чтобы исправить: я изменил каталог на / usr / local / etc , создали каталог, файл и затем установили владельца на www-data: www-data

cd /usr/local/etc
sudo mkdir php-fpm.d
cd php-fpm.d
sudo touch fpm.log
sudo chown -R www-data:www-data fpm.log

Если файл и каталог действительно существуют, запустите

ls fpm.log -l

и, если владельцем является root:

-rw-r--r-- 1 root root 0 Jun 23 19:52 fpm.log

запустить

sudo chown -R www-data:www-data fpm.log

, чтобы предоставить веб-серверу право собственности и доступ на запись

-rw-r--r-- 1 www-data www-data 12848 Jun 23 20:07 fpm.log
3
ответ дан 3 December 2019 в 01:49

Теги

Похожие вопросы