在 Debian 上运行 PHP 时常见的报错原因很多,不同错误信息原因不同。下面我按最常见情况给你一个排查清单,你可以对照看看,也可以把具体报错信息贴出来,我可以精准定位。
典型报错
php: command not found
或访问网页时直接下载 PHP 文件。
排查
php -v
dpkg -l | grep php
✅ 常见解决:
sudo apt update
sudo apt install php php-cli php-fpm
报错现象
403 / 404✅ 确认 Apache 已加载 PHP 模块:
ls /etc/apache2/mods-enabled/ | grep php
未加载可安装:
sudo apt install libapache2-mod-php
sudo systemctl restart apache2
报错现象
502 Bad Gateway✅ 检查 Nginx 配置:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/phpX.X-fpm.sock;
}
检查 PHP-FPM 是否运行:
systemctl status phpX.X-fpm
报错
connect() to unix:/run/php/phpX.X-fpm.sock failed
✅ 解决:
sudo systemctl start php8.2-fpm
sudo systemctl enable php8.2-fpm
确认 sock 文件:
ls /run/php/
报错
Class 'xxx' not found
extension not found
✅ 安装扩展:
sudo apt install php-curl php-mysql php-json php-mbstring php-xml
报错
Permission denied
✅ 修复:
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
Debian 可能同时安装多个 PHP 版本。
✅ 查看:
update-alternatives --config php
php -l index.php # 语法检查
# Apache
tail -f /var/log/apache2/error.log
# Nginx
tail -f /var/log/nginx/error.log
# PHP-FPM
tail -f /var/log/phpX.X-fpm.log
allow_url_fopen = Off
修改:
sudo nano /etc/php/X.X/apache2/php.ini
# 或
/etc/php/X.X/fpm/php.ini
Debian 更稳定但更新慢,建议:
# 添加 Sury PHP 源(可选)
sudo apt install apt-transport-https
curl -sSL https://packages.sury.org/php/README | bash -
请把以下信息贴出来:
cat /etc/debian_version)php -v)例如:
Debian 11 + Nginx + PHP 8.2,访问 php 文件 502
我可以一步一步帮你解决 ✅