在 Debian 上排查 PHP 错误,通常可以从错误日志、PHP 配置、Web 服务器、代码本身四个方向入手。下面按实用流程给你一套排查方法。
php -v
如果报错:
command not found → 没装或没加到 PATHsudo apt update
sudo apt install php php-cli
测试 PHP 是否能运行:
php -r "echo phpversion();"
php --ini
或
php -i | grep "Loaded Configuration File"
在 php.ini 中关注:
display_errors = On ; 开发环境建议开
log_errors = On
error_log = /var/log/php/php_errors.log
修改后重启服务:
sudo systemctl restart apache2
# 或
sudo systemctl restart php-fpm
sudo tail -f /var/log/php/php_errors.log
如果是 Apache:
sudo tail -f /var/log/apache2/error.log
如果是 Nginx + PHP-FPM:
sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/php-fpm.log
确认 PHP 模块已启用:
sudo a2enmod php
sudo systemctl restart apache2
访问 PHP 页面空白?
error.log.phpindex.php 存在常见错误:
File not found502 Bad Gateway检查:
sudo systemctl status php-fpm
Nginx 配置示例:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
| 现象 | 可能原因 |
|---|---|
| 空白页 | 致命错误 + display_errors 关闭 |
| 500 错误 | 语法错误 / 权限问题 |
| 502 | PHP-FPM 没启动或 socket 错 |
| 403 | 文件权限 / SELinux(Debian 少) |
| 超时 | max_execution_time 太小 |
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
php -l file.php # 检查语法
php -i # 查看配置
systemctl status apache2
systemctl status php-fpm
journalctl -xe
你可以直接告诉我:
我可以帮你精准定位。