Home  >  Article  >  Backend Development  >  nginx php-fpm configuration method to output php error log

nginx php-fpm configuration method to output php error log

WBOY
WBOYOriginal
2016-07-29 09:15:521422browse

This article introduces how to configure php-fpm to output PHP error logs in the nginx server. Interested friends can refer to it. I hope it will be helpful to everyone.

Since nginx is only a web server, the access log of nginx only records the accessed pages, and there will be no php error log information.

nginx sends the request for php to the php-fpm fastcgi process for processing. The default php-fpm will only output the error message of php-fpm. In the errors of php-fpm You can’t see php’s errorlog in the log

Reason:
php-fpm’s configuration file php-fpm.conf defaults to turning off the error output of the worker process and redirecting them directly to /dev/null, so we use nginx error Neither the log nor the errorlog of php-fpm can see the error log of php.

Ways to solve the problem that php-fpm does not record php error logs under nginx:

1. Modify the configuration in php-fpm.conf and add it if it is not there

Copy the code Code example:

catch_workers_output = yes
error_log = log/error_log

2. Modify the configuration in php.ini, if not, add

Copy codeCode example:

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 errors, you can see 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 will override the error_log parameter in php.ini
So make sure the final error_log file you see in phpinfo() has writable permissions and does not Set the php_admin_value[error_log] parameter, otherwise the error log will be output to the error log of php-fpm.
nginx php-fpm configuration method to output php error log

2. The location of php.ini cannot be found, use php's phpinfo() to view the results
nginx php-fpm configuration method to output php error log

3. How to modify the PHP error log not to be output to the page or screen
Modify php.ini

Copy codeCode example:

display_errors = off //Do not display error information (not output to the page or screen)
log_errors = on //Record error information (save to log file)
error_reporting = E_ALL //Capture All error messages
error_log = //Set the log file name

Modify the above configuration in the program

Copy codeCode example:

ini_set("display_errors",0)
ini_set("error_reporting",E_ALL); //This value seems to be a PHP constant
ini_set("error_log","")
ini_set("log_errors",1);

4. How to output php error log to nginx error log
In PHP 5.3.8 and previous versions, PHP running through FastCGI, When an error occurs during user access, it will first be written to PHP's errorlog. If PHP's errorlog cannot be written, the error content will be returned to the FastCGI interface, and then nginx will record it to nginx's errorlog after receiving the error return from FastCGI.
In PHP 5.3.9 and later versions, PHP will only try to write to PHP's errorlog after an error occurs. If it fails, it will not return to FastCGI, and the error log will be output to the error log of php-fpm.
So if you want to output the php error log to the nginx error log, you need to use a version before php5.3.8, and the error_log of php in the configuration file is not writable by the php worker process.​
The above introduces the configuration method of nginx php-fpm to output PHP error log, including the relevant content. I hope it will be helpful to friends who are interested in PHP tutorials.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn