在 Ubuntu 上定位 PHP 错误,核心就是找到 PHP 日志在哪里 + 看日志内容。下面按常见场景给你一套实用方法。
php --ini
通常能看到:
/etc/php/8.1/cli/php.ini/etc/php/8.1/fpm/php.ini查看日志相关配置:
grep -E "log_errors|error_log|display_errors" /etc/php/*/*/php.ini
重点关注:
log_errors = On
error_log = /var/log/php/php_errors.log
display_errors = Off
sudo tail -f /var/log/php*/php-fpm.log
或:
sudo tail -f /var/log/php/*/www-error.log
具体看版本:
ls /var/log/php/
Apache 错误日志里:
sudo tail -f /var/log/apache2/error.log
Nginx 错误日志:
sudo tail -f /var/log/nginx/error.log
PHP 错误在 PHP-FPM 日志里(上面已说)
php your_script.php
错误直接输出到终端
或看:
tail -f /var/log/php/php_errors.log
sudo tail -f /var/log/php/*/www-error.log
然后刷新网页 / 请求接口
grep -i "error" /var/log/php/*/www-error.log
grep -i "Fatal" /var/log/php/*/www-error.log
display_errors = On
error_reporting = E_ALL
改完重启:
sudo systemctl restart php8.1-fpm
| 日志内容 | 含义 |
|---|---|
| Fatal error | 代码直接崩 |
| Parse error | 语法错误 |
| Warning | 不致命但有问题 |
| Notice | 不严谨写法 |
| Allowed memory size | 内存不够 |
| Execution time | 超时 |
tail -f 实时看如果你愿意,可以告诉我:
我可以直接帮你精确定位该看哪个日志文件。