在 CentOS 上开启 PHP 错误显示,通常取决于你使用的 PHP 运行方式(PHP-FPM / Apache mod_php) 以及 PHP 版本。下面按常见场景给你一套完整做法。
php.ini(最常用)php -i | grep "Loaded Configuration File"
常见路径:
/etc/php.ini
/etc/php.ini
/etc/php/7.x/cli/php.ini
/etc/php/7.x/fpm/php.ini
如果是 PHP-FPM,一定要改 FPM 对应的 php.ini,而不是 CLI 的。
vim /etc/php.ini
修改或取消注释以下配置:
display_errors = On
display_startup_errors = On
error_reporting = E_ALL
log_errors = On
error_log = /var/log/php_errors.log
✅ 推荐开发环境这样设置
⚠️ 生产环境 不建议开启 display_errors
systemctl restart php-fpm
systemctl restart nginx
systemctl restart httpd
适合临时调试,无需改配置文件:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
⚠️ 注意:
php -i | grep error_log
或查看:
error_log = /var/log/php_errors.log
touch /var/log/php_errors.log
chown apache:apache /var/log/php_errors.log
# 或 nginx
chown nginx:nginx /var/log/php_errors.log
chmod 644 /var/log/php_errors.log
tail -f /var/log/php_errors.log
如果日志不生成,可能是 SELinux 限制:
setenforce 0
或放行日志目录:
semanage fcontext -a -t httpd_log_t "/var/log/php_errors.log"
restorecon -v /var/log/php_errors.log
<?php
phpinfo();
搜索:
display_errorserror_reporting确认是否为 On / E_ALL
| 环境 | display_errors | log_errors |
|---|---|---|
| 开发 | On | On |
| 生产 | Off | On |
如果你愿意,可以告诉我:
我可以给你 精确到命令级别 的配置方案。