在 CentOS 上开启 PHP 日志,通常分为两步:
1️⃣ 开启 PHP 错误日志
2️⃣ 确保 Web 服务(Apache / Nginx)能正常记录
下面按常见场景说明。
先确认正在使用的 php.ini 位置:
php --ini
或:
php -i | grep "Loaded Configuration File"
常见路径:
/etc/php.ini
/etc/php/7.x/cli/php.ini
/etc/php/7.x/fpm/php.ini
⚠️ 注意:
/etc/php.ini/etc/php-fpm.d/www.conf 或 /etc/php/7.x/fpm/php.ini编辑 php.ini:
vim /etc/php.ini
display_errors = Off # 生产环境建议 Off
log_errors = On
error_reporting = E_ALL
error_log = /var/log/php/php_error.log
mkdir -p /var/log/php
chown -R apache:apache /var/log/php # Apache
# 或
chown -R nginx:nginx /var/log/php # Nginx
chmod -R 755 /var/log/php
如果是 PHP-FPM,还需要检查:
vim /etc/php-fpm.d/www.conf
确保有:
php_admin_value[error_log] = /var/log/php/php_error.log
php_admin_value[log_errors] = On
systemctl restart php-fpm
重启 Apache:
systemctl restart httpd
查看 Apache 错误日志(也常包含 PHP 错误):
tail -f /var/log/httpd/error_log
创建测试文件:
<?php
error_log("PHP log test");
undefined_function();
访问页面,然后查看日志:
tail -f /var/log/php/php_error.log
检查:
log_errors = Onsetenforce 0 # 临时关闭测试
如果生效:
semanage fcontext -a -t httpd_log_t "/var/log/php(/.*)?"
restorecon -Rv /var/log/php
log_errors = On
error_log = /var/log/php/php_error.log
✅ 改配置
✅ 建目录
✅ 给权限
✅ 重启服务
如果你愿意,可以告诉我:
我可以给你一套 完全对应你环境的配置命令。