在 CentOS 上配置 PHP 日志,主要取决于你使用的是 PHP-FPM 还是 Apache + mod_php。下面按常见场景详细说明。
/etc/php-fpm.conf
/etc/php-fpm.d/www.conf
error_log = /var/log/php-fpm/error.log
log_level = notice
可选值:
alerterrorwarningnotice(默认)debugsystemctl restart php-fpm
编辑 php.ini(路径可能不同):
php -i | grep "Loaded Configuration File"
常见路径:
/etc/php.ini
/etc/php/8.x/fpm/php.ini
display_errors = Off
log_errors = On
error_log = /var/log/php/php_error.log
error_reporting = E_ALL
mkdir -p /var/log/php
chown -R apache:apache /var/log/php # Apache
chown -R nginx:nginx /var/log/php # Nginx
PHP 错误会写入 Apache 日志:
/var/log/httpd/error_log
同样修改 php.ini:
log_errors = On
error_log = /var/log/php/php_error.log
重启 Apache:
systemctl restart httpd
/var/log/nginx/error.log
/var/log/nginx/access.log
✅ 重点:PHP 错误不会进 Nginx 日志
必须配置:
log_errors = On
error_log = /var/log/php/php_error.log
vim /etc/logrotate.d/php
示例:
/var/log/php/*.log {
daily
missingok
rotate 30
compress
delaycompress
notifempty
create 0640 apache apache
}
检查:
ls -ld /var/log/php
ps aux | grep php-fpm
chmod 755 /var/log/php
chown -R nginx:nginx /var/log/php
php -i | grep error_log
php-fpm -t
systemctl status php-fpm
如果你愿意,可以告诉我:
我可以给你一份 完全针对你环境的配置示例。