Cách định cấu hình PHP-FPM qua NGINX để ghi vào tệp nhật ký per-virtualhost


11

Tôi có Fedora 16 với Nginx và PHP-FPM. Mọi thứ đang hoạt động rất tốt. Tất cả các bản ghi với PHP thông báo, cảnh báo, lỗi vv là trong /var/log/php-fpm/www-error.log.

Có cách nào để định cấu hình PHP-FPM để ghi lỗi trong các tệp nhật ký thích hợp được định cấu hình là nhật ký lỗi cho Nginx không? Vì vậy, tôi muốn đăng nhập lỗi PHP trên mỗi virtualhost chứ không phải trong một tệp toàn cầu. (giống như trong Apache HTTPd và PHP).

Câu trả lời:


14

Lệnh PHP-FPM: catch_workers_output = yes sẽ gây ra lỗi PHP gửi đến thiết bị xuất chuẩn / stderr để được gửi lại cho nginx và chúng sẽ được ghi lại.

Trong PHP 5.2.4 trở lên, lệnh display_errors không còn là boolean nữa, nhưng sẽ chấp nhận 'stderr' như một tùy chọn. Điều này sẽ khiến tất cả các lỗi quay trở lại nginx và được ghi lại trên mỗi vhost.

Vì vậy, trong cấu hình PHP-FPM của bạn:

php_admin_value[display_errors] = 'stderr'

Tùy chọn khác của bạn là chỉ thị:

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

đó là những gì bạn có khả năng sử dụng bây giờ. php-fpm.conf hỗ trợ một số biến, như $ pool (mà đối với bạn, có thể sẽ trả về 'www').

Nếu bạn có nhiều hơn 1 pool, bạn có thể dễ dàng đăng nhập chúng một cách riêng biệt.

Từ một trình duyệt nhanh thông qua mã nguồn, có vẻ như $ pool là biến duy nhất như vậy.


1
Hmm, dường như có một số vấn đề vớidisplay_errors="stderr" . Bạn đã thử nó để làm việc?
Pacerier
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.