Nginx php-fpm output PHP error log

Source: Internet
Author: User
Tags fpm ini php error php error log phpinfo versions

Nginx is a Web server, so nginx access logs will not have PHP error log information only for records that access the page.

Nginx to the PHP request to the PHP-FPM fastcgi process to deal with, the default php-fpm will only output PHP-FPM error message, in PHP-FPM errors log also can't see PHP errorlog

The reason is that PHP-FPM's profile php-fpm.conf The default is to turn off the error output of the worker process and redirect them directly to/dev/null, so we nginx the error log in the And PHP-FPM's errorlog don't see PHP's error log.

It's painful to debug. To resolve Nginx under the PHP-FPM does not log the PHP error logging method:

1. Modify php-fpm.conf the configuration does not increase
Catch_workers_output = yes
Error_log = Log/error_log

2. Modify the configuration in php.ini, no increase
Log_errors = On
Error_log = "/usr/local/lnmp/php/var/log/error_log"
Error_reporting=e_all&~e_notice

3. Restart PHP-FPM,
When PHP executes an error, it sees the error log in "/usr/local/lnmp/php/var/log/error_log"

Please note:

1. The Php_admin_value[error_log] parameter in php-fpm.conf overrides the Error_log parameter in php.ini
So make sure that the final error_log file you see in Phpinfo () has writable permissions and that the Php_admin_value[error_log] parameter is not set, otherwise the error log is exported to the PHP-FPM error log.


2. Can not find the php.ini location, using the PHP phpinfo () results to view


3. How to modify the PHP error log does not output to the page or screen

Modify PHP.ini

Display_errors = off//Do not display error message (not output to page or screen)
Log_errors = ON//Log error message (saved to log file)
error_reporting = e_all//capture all error messages
Error_log =//Set log file name

Modify the above configuration in the program

Ini_set ("Display_errors", 0)
Ini_set ("error_reporting", E_all); This value seems to be a PHP constant.
Ini_set ("Error_log", "< log file name >")
Ini_set ("Log_errors", 1);

4. How to output the error log of PHP to nginx error log

In PHP 5.3.8 and previous versions, PHP, which ran through fastcgi, encountered errors in user access, first written to PHP errorlog

If PHP's errorlog cannot be written, the error content is returned to the FastCGI interface, and then Nginx is recorded in Nginx errorlog after the error returned fastcgi received

In PHP 5.3.9 and later versions, PHP only attempts to write PHP errorlog, if the failure will not return to the fastcgi, the error log will be exported to the PHP-FPM error log.
So if you want to export the PHP error log to the Nginx error log, you need to use the previous version of php5.3.8, and the PHP error_log for the PHP worker process is not writable in the configuration file

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.