What should I do if php-fpm under nginx does not record php error logs?

coldplay.xixi
Release: 2023-03-03 09:10:02
Original
3505 people have browsed it

How to solve the problem that php-fpm under nginx does not record php error logs: 1. Modify the configuration in [php-fpm.conf], if not, add it; 2. Modify the configuration in [php.ini], if not, then Add; 3. Restart [php-fpm].

What should I do if php-fpm under nginx does not record php error logs?

How to solve the problem that php-fpm does not record php error log under nginx:

1. Modify Configuration in php-fpm.conf, if not, add

catch_workers_output = yes
error_log = log/error_log
Copy after login

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

log_errors = On
error_log = "/usr/local/lnmp/php/var/log/error_log"
error_reporting=E_ALL&~E_NOTICE
Copy after login

3 .Restart php-fpm

When PHP executes an error, 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 overwrite the ## in php.ini #error_log Parameters

So make sure the final error_log file you see in

phpinfo() has writable permissions and does not have the php_admin_value[error_log] parameter set , 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

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

Modify php.ini

    ##display_errors = off //Do not display error messages (do not output them to the page or screen)
  • log_errors = on //Record error information (save to log file)
  • error_reporting = E_ALL //Capture all error information
  • error_log = //Set the log file name
  • Modify the above configuration in the program
ini_set("display_errors",0)
ini_set("error_reporting",E_ALL); //这个值好像是个PHP的常量
ini_set("error_log","<日志文件名>")
ini_set("log_errors",1);
Copy after login

4. How to output the php error log to the nginx error log

In PHP 5.3.8 and earlier versions, when PHP runs through FastCGI, if an error occurs during user access, it will first be written to the PHP errorlog.

If the PHP errorlog cannot be written, The error content will be returned to the FastCGI interface, and then nginx will record it in nginx's errorlog after receiving the error return from FastCGI.

In PHP 5.3.9 and later versions, PHP only tries to write after an error occurs. Enter the error log of PHP. If it fails, it will not return to FastCGI. 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

Related learning recommendations:
PHP programming from entry to proficiency

The above is the detailed content of What should I do if php-fpm under nginx does not record php error logs?. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template