Debian 上 PHP 无法运行 通常不是单一原因,而是 Web 服务、PHP 安装或配置 中某一环出了问题。下面按 最常见场景 给你一个系统排查思路(适用于 Debian 10/11/12)。
php -v
✅ 正常应看到类似:
PHP 8.2.1 (cli) ...
❌ 如果提示 command not found:
sudo apt update
sudo apt install php
这说明 Web 服务器没正确调用 PHP。
sudo apt install libapache2-mod-php
sudo systemctl restart apache2
ls /etc/apache2/mods-enabled/ | grep php
应看到类似:
php8.2.conf
php8.2.load
创建测试文件:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/test.php
浏览器访问:
http://服务器IP/test.php
✅ 看到 PHP 信息页 → 正常
❌ 下载文件 / 空白页 → PHP 没被解析
sudo apt install php-fpm
查看版本:
php-fpm8.2 -v
sudo systemctl enable php8.2-fpm
sudo systemctl start php8.2-fpm
示例 /etc/nginx/sites-available/default:
server {
listen 80;
server_name _;
root /var/www/html;
index index.php index.html;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
}
重启 Nginx:
sudo systemctl restart nginx
✅ 原因:Web 服务器没解析 PHP
✅ 解决:安装对应 PHP 模块(Apache)或 PHP-FPM(Nginx)
原因可能是:
排查:
sudo tail -f /var/log/apache2/error.log
# 或
sudo tail -f /var/log/nginx/error.log
临时开启错误显示(测试用):
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
原因:
检查:
systemctl status php8.2-fpm
ls /run/php/
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
Debian 升级可能:
解决:
sudo apt install libapache2-mod-php8.2
sudo a2enmod php8.2
sudo systemctl restart apache2
| 检查项 | 命令 |
|---|---|
| PHP CLI | php -v |
| Apache 模块 | ls /etc/apache2/mods-enabled/ |
| PHP-FPM | systemctl status php8.2-fpm |
| Web 日志 | /var/log/apache2 或 /var/log/nginx |
| 测试文件 | test.php |
你可以直接贴出:
我可以一步一步帮你定位 ✅