Home  >  Article  >  Backend Development  >  How to enable php apache error log

How to enable php apache error log

藏色散人
藏色散人Original
2020-10-20 10:06:203687browse

How to enable the php apache error log: first modify the configuration in php-fpm.conf; then modify the configuration in php.ini to "log_errors = On"; and finally restart php-fpm.

How to enable php apache error log

Recommended: "PHP Video Tutorial"

nginx and apache enable php error logging

The LNMP development environment recently built locally. In order not to affect the normal development of the front-end during development, some error messages in php.ini in PHP are blocked. But in this way, it affects some problems in back-end development, such as the inability to debug some problems in development in time

nginx is different from apache. In apache You can directly specify the PHP error log, so that the error information during PHP execution will be directly entered into the PHP error log, which can be easily queried.

In nginx, things become like this: nginx only records access logs for page visits. 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, and the error log of php cannot be seen in the errors log of php-fpm.

The reason is that the php-fpm 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’s error log and php- The error log of fpm cannot see the error log of php.

So we need to make the following settings to see how php-fpm does not record php error logs under nginx:

1, modify the configuration in php-fpm.conf, if not Please add:

[global]
; Note: the default prefix is /usr/local/php/var
error_log = log/php_error_log
[www]
catch_workers_output = yes

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

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

3. Restart php-fpm

When PHP When executing an error, you can see the error log in "/usr/local/lnmp/php/var/log/php_error_log"

If it appears:

[root@localhost etc]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm [17-Apr-2014 18:40:52] ERROR: [/usr/local/php/etc/php-fpm.conf:5] unknown entry 'catch_workers_
[17-Apr-2014 18:40:52] ERROR: failed to load configuration file '/usr/local/php/etc/php-fpm.conf'
[17-Apr-2014 18:40:52] ERROR: FPM initialization failed
failed

Then please carefully write the configuration into the corresponding group in the first step, otherwise the above error will appear:

ERROR: [/usr/local/php/etc/php-fpm.conf:5] unknown entry ‘catch_workers_output'
 
 
apache
 
display_errors

Error echo is commonly used in development mode, but many applications are in the formal environment. Also forgot to turn off this option. Error echo can expose a lot of sensitive information, which facilitates the attacker's next attack. It is recommended to turn this option off.

display_errors = On

In the open state, if an error occurs, an error will be reported and an error message will appear.

dispaly_errors = Off

In the closed state, if an error occurs, it will prompt: Server error. But no error message will appear

log_errors

Just use this in a formal environment and record the error message in the log. Just in time to turn off error echo.

For PHP developers, once a product is put into use, the first thing is to turn off the display_errors option to avoid being damaged by the path, database connection, data table and other information disclosed by these errors. to hacker attacks.

After a product is put into use, there will inevitably be error messages, so how to record this information that is very useful to developers?

Just turn on PHP's log_errors. By default, it is recorded to the log file of the WEB server, such as Apache's error.log file.

Of course, you can also record error logs to the specified file.

The above is the detailed content of How to enable php apache error log. For more information, please follow other related articles on the PHP Chinese website!

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