在 Ubuntu 上排查 PHP 错误,一般按下面几个步骤来:
php --ini
通常会看到类似:
Loaded Configuration File: /etc/php/8.1/cli/php.ini
然后查看错误日志路径:
grep -E "error_log|log_errors|display_errors" /etc/php/8.1/cli/php.ini
常见配置:
log_errors = On
error_log = /var/log/php/php_errors.log
display_errors = Off
⚠️ Web(PHP-FPM / Apache)和 CLI 是不同的 php.ini
# PHP-FPM 错误日志
/var/log/php8.1-fpm.log
# Nginx 错误日志
/var/log/nginx/error.log
# 网站访问日志
/var/log/nginx/access.log
查看 PHP-FPM 配置:
grep error_log /etc/php/8.1/fpm/php-fpm.conf
# Apache 错误日志
/var/log/apache2/error.log
# PHP 错误(如果配置在 php.ini)
/var/log/php/php_errors.log
仅用于开发环境!
display_errors = On
error_reporting = E_ALL
重启服务:
# PHP-FPM
systemctl restart php8.1-fpm
# Apache
systemctl restart apache2
ini_set('display_errors', 1);
error_reporting(E_ALL);
tail -f /var/log/php/php_errors.log
# 或
tail -f /var/log/nginx/error.log
出现错误时,会实时显示。
| 错误 | 可能原因 |
|---|---|
| 500 Internal Server Error | PHP 语法错误 / FPM 崩溃 |
| White Screen(白屏) | display_errors 关了 |
| Permission denied | 文件/目录权限问题 |
| Class not found | autoload / composer 问题 |
| Connection refused | 数据库没启动 |
# PHP 语法检查
php -l index.php
# 查看 PHP 版本
php -v
# 查看已加载模块
php -m
如果你能告诉我:
我可以帮你精准定位问题。