在 Ubuntu 上 PHP 日志“报错多”,通常不是 PHP 本身有问题,而是环境配置、代码质量、权限或运维方式导致的。下面按最常见原因 → 排查方法 → 解决建议给你梳理。
Ubuntu 默认或某些面板会把错误全开:
display_errors = On
error_reporting = E_ALL
log_errors = On
结果:
✅ 解决:
; 生产环境建议
display_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE
log_errors = On
典型报错:
Permission deniedfailed to open streamUncaught Exception常见原因:
/var/www 属主不是 www-dataupload_tmp_dir 无权限✅ 解决:
sudo chown -R www-data:www-data /var/www
sudo chmod -R 755 /var/www
Ubuntu 升级后:
Deprecated 或 Fatal error常见:
null 参数报错✅ 排查:
php -v
php -l file.php
Laravel / ThinkPHP / Symfony:
✅ 解决:
APP_DEBUG=false
例如:
imagickredisopcachembstring报错示例:
Class not foundundefined function✅ 检查:
php -m
Ubuntu 常见日志位置:
/var/log/php*//var/log/apache2//var/log/nginx/storage/logs你可能看到的是汇总日志,其实问题集中在一两个点。
php --ini
看:
php.inierror_logtail -f /var/log/php8.1-fpm.log
# 或
tail -f /var/log/apache2/error.log
grep -oE "PHP (Notice|Warning|Fatal error)" php_error.log | sort | uniq -c
你可以直接发:
php -v我可以帮你逐条分析是不是真问题,还是“假多”。