温馨提示×

Debian PHP为何无法运行

小樊
44
2026-08-16 05:21:50
栏目: 编程语言

Debian 上 PHP 无法运行 通常不是单一原因,而是 Web 服务、PHP 安装或配置 中某一环出了问题。下面按 最常见场景 给你一个系统排查思路(适用于 Debian 10/11/12)。


一、先确认 PHP 是否已安装

php -v

✅ 正常应看到类似:

PHP 8.2.1 (cli) ...

❌ 如果提示 command not found

sudo apt update
sudo apt install php

二、PHP 在 CLI 能跑,但网页打不开(最常见)

这说明 Web 服务器没正确调用 PHP

1️⃣ Apache + PHP(最常见)

安装 PHP Apache 模块

sudo apt install libapache2-mod-php
sudo systemctl restart apache2

确认模块已启用

ls /etc/apache2/mods-enabled/ | grep php

应看到类似:

php8.2.conf
php8.2.load

测试 PHP

创建测试文件:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/test.php

浏览器访问:

http://服务器IP/test.php

✅ 看到 PHP 信息页 → 正常
❌ 下载文件 / 空白页 → PHP 没被解析


2️⃣ Nginx + PHP(PHP-FPM)

安装 PHP-FPM

sudo apt install php-fpm

查看版本:

php-fpm8.2 -v

启动并开机自启

sudo systemctl enable php8.2-fpm
sudo systemctl start php8.2-fpm

Nginx 必须配置 fastcgi

示例 /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

三、常见错误现象与原因

❌ 浏览器直接下载 PHP 文件

✅ 原因:Web 服务器没解析 PHP
✅ 解决:安装对应 PHP 模块(Apache)或 PHP-FPM(Nginx)


❌ 空白页(White Screen)

原因可能是:

  • PHP 报错但错误未显示
  • 语法错误

排查:

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);

❌ 502 Bad Gateway(Nginx)

原因:

  • PHP-FPM 没启动
  • socket 路径错误

检查:

systemctl status php8.2-fpm
ls /run/php/

四、权限问题(非常常见)

Web 目录权限

sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html

五、Debian 升级后 PHP 失效

Debian 升级可能:

  • PHP 版本变化(7.4 → 8.2)
  • Apache/Nginx 模块未更新

解决:

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

七、如果你愿意,我可以更精确帮你

你可以直接贴出:

  1. Debian 版本
  2. Web 服务器(Apache / Nginx)
  3. PHP 版本
  4. 具体报错或现象(截图/日志)

我可以一步一步帮你定位 ✅

0