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.
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!