温馨提示×

Debian LNMP为何无法解析

小樊
36
2026-07-15 17:53:47
栏目: 智能运维

Debian 上 LNMP 无法解析(通常是 PHP 不被解析,直接下载或显示源码),原因基本集中在 Nginx 没有正确把 PHP 交给 PHP-FPM 处理。下面按最常见原因给你系统排查。


一、最常见原因:Nginx 未配置 PHP 解析

1️⃣ 检查 Nginx 是否支持 PHP-FPM

必须存在类似配置:

location ~ \.php$ {
    fastcgi_pass   unix:/run/php/php-fpm.sock;
    # 或
    # fastcgi_pass   127.0.0.1:9000;

    fastcgi_index  index.php;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

关键点

  • fastcgi_pass 必须存在
  • SCRIPT_FILENAME 必须正确

二、PHP-FPM 未运行(最常见)

2️⃣ 检查 PHP-FPM 状态

systemctl status php-fpm
# 或(Debian 常见)
systemctl status php8.2-fpm

✅ 正常状态应为:

Active: active (running)

启动 / 重启:

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

三、Nginx 与 PHP-FPM 通信方式不匹配

3️⃣ 检查 sock 文件是否一致

Nginx 中:

fastcgi_pass unix:/run/php/php8.2-fpm.sock;

PHP-FPM 配置中:

cat /etc/php/8.2/fpm/pool.d/www.conf | grep listen

应看到:

listen = /run/php/php8.2-fpm.sock

❌ 常见错误:

  • Nginx 用 sock,PHP-FPM 用 9000 端口
  • 或权限不一致

四、Nginx 未重载配置

4️⃣ 修改配置后必须执行

nginx -t
systemctl reload nginx

五、站点根目录错误(非常容易忽略)

5️⃣ 检查 root 路径

server {
    root /var/www/html;
    index index.php index.html;
}

测试文件:

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

访问:

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

六、PHP 文件权限问题

6️⃣ 权限 & 属主

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

七、Debian 特有坑点

7️⃣ fastcgi_params 缺失

Debian 默认有:

/etc/nginx/fastcgi_params

如果缺失,可手动补充:

include fastcgi_params;

八、快速自检清单 ✅

检查项 命令
Nginx 是否运行 systemctl status nginx
PHP-FPM 是否运行 systemctl status php8.2-fpm
Nginx 配置是否有 PHP nginx -T
sock 是否一致 ls /run/php/
是否重载 Nginx nginx -t && systemctl reload nginx

九、如果你愿意,我可以直接帮你定位

你可以直接贴出:

  1. /etc/nginx/sites-enabled/default
  2. php -v
  3. systemctl status php*-fpm
  4. 访问 PHP 文件时的具体表现(下载 / 502 / 空白)

我可以 逐行帮你改到可用为止

0