温馨提示×

如何调Debian LNMP错

小樊
37
2026-10-13 16:08:03
栏目: 智能运维

下面我按最常见的 Debian + LNMP(Linux + Nginx + MySQL/MariaDB + PHP)故障场景给你一个系统化的排错思路,不是只讲某一条命令,而是「先定位再处理」。


一、先确认“错在哪一层”

LNMP 任一层出错,现象可能一样(网页打不开 / 502 / 空白页)。

1️⃣ Nginx 本身是否正常

systemctl status nginx
nginx -t

✅ 正常应显示 active (running) 和 test is successful

常见错误:

  • 端口被占用(80/443)
  • 配置语法错误
  • 证书路径错误

看错误日志:

tail -n 50 /var/log/nginx/error.log

2️⃣ PHP 是否正常工作(非常常见)

systemctl status php8.2-fpm   # 版本按实际

或

ps aux | grep php-fpm

测试 PHP:

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

浏览器访问 http://IP/info.php

❌ 如果:

  • 下载文件 → Nginx 没把 .php 交给 PHP
  • 502 Bad Gateway → PHP-FPM 没运行或 socket 错

检查 Nginx 配置中:

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

路径必须存在:

ls /run/php/

3️⃣ MySQL / MariaDB

systemctl status mariadb
mysql -u root -p

常见错误:

  • 没启动
  • 权限错误
  • PHP 连的是 localhost 但实际是 socket

PHP 连接建议:

new PDO("mysql:host=127.0.0.1;dbname=xxx", "user", "pass");

日志:

tail -n 50 /var/log/mysql/error.log

二、最常见的 5 类 LNMP 错误速查

✅ 502 Bad Gateway

原因 90% 是:

  • PHP-FPM 没启动
  • socket 路径不对
  • PHP 崩溃

排查:

journalctl -u php8.2-fpm

✅ 403 Forbidden

  • 目录没权限
  • 没 index.php
  • Nginx 用户无读权限
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html

✅ 空白页(White Screen)

PHP 报错被关了:

ini_set('display_errors', 1);
error_reporting(E_ALL);

或看:

tail -f /var/log/php8.2-fpm.log

✅ 网站打不开但本地能访问

  • 防火墙
ufw status
  • 云服务器安全组
  • Nginx 只监听 127.0.0.1

✅ 重启后服务没起来

systemctl enable nginx php8.2-fpm mariadb

三、推荐的标准排错顺序(记住这个)

  1. nginx -t
  2. systemctl status nginx php-fpm mariadb
  3. 看三个日志:
    • /var/log/nginx/error.log
    • /var/log/php*-fpm.log
    • /var/log/mysql/error.log
  4. 用 info.php 隔离问题

四、如果你愿意,我可以直接帮你“对症排错”

你可以直接贴:

  • 报错页面截图 / 文字
  • nginx -t 输出
  • error.log 最后 20 行
  • Debian 版本 + PHP 版本

我可以一步一步告诉你改哪里、改什么。

0 踩