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.
2. The location of php.ini cannot be found, use php's phpinfo() to view the results
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
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);