Як налаштувати PHP-FPM через NGINX для запису у файли журналу per-virtualhost


11

У мене є Fedora 16 з Nginx та PHP-FPM. Все працює дуже добре. Усі журнали із повідомленнями PHP, попередженнями, помилками та ін /var/log/php-fpm/www-error.log.

Чи є спосіб налаштувати PHP-FPM для запису помилок у власних файлах журналу, налаштованих як журнали помилок для Nginx? Отже, я хочу реєструвати помилки PHP на віртуальний хост, а не в одному глобальному файлі. (наприклад, в Apache Httpd та PHP).

Відповіді:


14

Директива PHP-FPM: catch_workers_output = yes призведе до помилок, які PHP надсилає до stdout / stderr, щоб вони повернулися до nginx, і вони будуть записані.

У PHP 5.2.4 та новіших версіях директива display_errors більше не булева, але буде приймати 'stderr' як опцію. Це повинно призвести до повернення всіх помилок до nginx та входу в систему за кожним vhost.

Отже, у вашому конфігурації PHP-FPM:

php_admin_value[display_errors] = 'stderr'

Ваш інший варіант - директива:

php_admin_value[error_log] = /var/log/fpm-php.www.log

що ви, ймовірно, зараз використовуєте. php-fpm.conf підтримує деякі змінні, наприклад $ pool (який, можливо, поверне 'www').

Якщо у вас є більше 1 басейну, ви можете легко записати їх окремо.

З швидкого перегляду вихідного коду, схоже, що $ pool - єдина така змінна.


1
Гм, мабуть, є певна проблемаdisplay_errors="stderr" . Ви перевірили це на роботу?
Pacerier
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.