在 CentOS 上定位 PHP 错误,通常可以按下面几个步骤来做。
php --ini
常见路径:
/etc/php.ini/etc/php.d/*.ini查看关键配置:
grep -E "error_reporting|display_errors|log_errors|error_log" /etc/php.ini
重点关注:
log_errors = On
error_log = /var/log/php/php_error.log
display_errors = Off # 生产环境通常关闭
如果 error_log 没设置,PHP 会写到:
/var/log/httpd/、/var/log/nginx//var/log/httpd/error_log
/var/log/php-fpm/error.log
/var/log/nginx/error.log
/var/log/php-fpm/www-error.log
(取决于 php-fpm.conf 或 www.conf)
tail -f /var/log/php-fpm/error.log
或
tail -f /var/log/httpd/error_log
访问页面,观察报错。
display_errors = On
error_reporting = E_ALL
重启服务:
systemctl restart php-fpm
# 或
systemctl restart httpd
ini_set('display_errors', 1);
error_reporting(E_ALL);
PHP Parse error: syntax error
→ 看文件名和行号
PHP Fatal error: Call to undefined function
→ 缺扩展或函数拼错
Permission denied
→ 检查目录权限、SELinux
getenforce
setenforce 0 # 临时关闭测试
Nginx:
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log
Apache:
tail -f /var/log/httpd/access_log
tail -f /var/log/httpd/error_log
error_log 是否生效display_errorsdisplay_errors如果你愿意,可以:
我可以直接帮你定位问题。