温馨提示×

Debian PHP为何无法解析

小樊
47
2026-08-27 12:02:02
栏目: 编程语言

Debian 上 PHP 无法解析(浏览器直接下载/显示源码),通常不是 PHP 没装,而是 Web 服务器没有把 PHP 交给解释器。下面按「最常见 → 较少见」来排查。


一、最常见原因(90% 出在这)

1️⃣ Apache 没有启用 PHP 模块(经典问题)

如果你用的是 Apache

dpkg -l | grep php

如果没看到 libapache2-mod-php,说明 Apache 没装 PHP 模块。

✅ 解决:

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

确认模块已启用:

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

如果没有:

sudo a2enmod php
sudo systemctl restart apache2

2️⃣ Nginx 没配置 PHP-FPM(非常常见)

如果你是 Nginx + PHP-FPM,Nginx 默认 不会解析 PHP

✅ 正确配置示例(关键):

server {
    listen 80;
    server_name example.com;
    root /var/www/html;

    index index.php index.html;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php-fpm.sock;
    }
}

然后:

sudo systemctl restart nginx
sudo systemctl restart php-fpm

⚠️ 注意:

  • php-fpm.sock 版本要对(如 php8.2-fpm.sock
  • location ~ \.php$ 必须存在

二、PHP 本身没装或版本错

php -v

如果没输出,说明没装:

sudo apt install php

Debian 12 默认是 PHP 8.2


三、文件权限 / 路径问题

1️⃣ PHP 文件不在 Web 根目录

  • Apache:/var/www/html
  • Nginx:看你 root 设的是哪
ls /var/www/html/index.php

2️⃣ 文件权限不对

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

四、PHP 文件内容错误

确认 index.php 内容正确:

<?php
phpinfo();

⚠️ 注意:

  • 必须是 <?php
  • 不能写成 <?(短标签,默认关闭)

五、浏览器直接下载 PHP 文件

说明: ✅ Web 服务器 完全没识别 PHP

常见原因:

  • Apache 没加载 PHP 模块
  • Nginx 没配置 fastcgi_pass
  • 文件被当成静态文件

六、快速自检清单 ✅

逐项确认:

  • [ ] PHP 已安装:php -v
  • [ ] Apache:libapache2-mod-php 已安装
  • [ ] Apache:a2enmod php
  • [ ] Nginx:配置了 fastcgi_pass
  • [ ] 服务已重启
  • [ ] 文件在正确目录
  • [ ] 文件权限正常
  • [ ] <?php 写法正确

七、我可以直接帮你定位

你可以直接贴出:

  1. Web 服务器(Apache / Nginx)
  2. Debian 版本
  3. PHP 版本
  4. 访问 PHP 时的现象
    • 下载?
    • 显示源码?
    • 404?
    • 502?

我可以一步一步给你精确命令 ✅

0