温馨提示×

LNMP如何调试Debian

小樊
42
2026-08-14 21:03:58
栏目: 智能运维

在 Debian 上调试 LNMP(Linux + Nginx + MySQL/MariaDB + PHP),一般不是“调试 Debian 本身”,而是排查 LNMP 各组件的问题。下面给你一套系统化调试思路 + 常用命令,适合新手和实战排错。


一、先确认系统环境

cat /etc/debian_version
uname -a

确认 Debian 版本(10/11/12),不同版本软件包名可能不同。


二、调试 Nginx(最常见)

1️⃣ 检查 Nginx 是否运行

systemctl status nginx

启动 / 重启 / 停止:

systemctl start nginx
systemctl restart nginx
systemctl stop nginx

2️⃣ 检查配置文件语法

nginx -t

常见错误:

  • 少写 ;
  • root 路径不存在
  • fastcgi_pass 指向错误

3️⃣ 查看 Nginx 日志(非常重要)

tail -f /var/log/nginx/error.log
tail -f /var/log/nginx/access.log

常见错误示例:

  • 403 Forbidden → 权限 / index 文件
  • 404 → root 路径错误
  • 502 Bad Gateway → PHP-FPM 没跑

三、调试 PHP / PHP-FPM

1️⃣ 检查 PHP-FPM 是否运行

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

启动:

systemctl start php8.2-fpm

2️⃣ 确认 Nginx 调用 PHP-FPM 的 sock

ls /run/php/

Nginx 配置中应有类似:

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

⚠️ 版本必须一致


3️⃣ 查看 PHP-FPM 日志

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

4️⃣ 测试 PHP 是否正常解析

创建测试文件:

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

浏览器访问:

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

如果直接下载文件 → Nginx 没交给 PHP 解析


四、调试 MySQL / MariaDB

1️⃣ 检查数据库状态

systemctl status mariadb
# 或
systemctl status mysql

2️⃣ 登录数据库测试

mysql -u root -p

3️⃣ 查看数据库日志

tail -f /var/log/mysql/error.log

4️⃣ PHP 连不上数据库?

检查:

  • 是否安装 PHP 数据库扩展
apt install php-mysql
  • 重启 PHP-FPM

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

1️⃣ Web 目录权限

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

2️⃣ 查看 Nginx 运行用户

ps aux | grep nginx

通常是 www-data


六、防火墙 & 端口

1️⃣ 检查端口

ss -lntp

确认:

  • 80(Nginx)
  • 3306(MySQL)

2️⃣ Debian 防火墙(nftables / ufw)

ufw status

开放端口:

ufw allow 80
ufw allow 443

七、快速排错流程图(记住这个)

网站打不开
   ↓
Nginx 是否运行?
   ↓
nginx -t 是否报错?
   ↓
看 error.log
   ↓
是否 502?
   ↓
PHP-FPM 是否运行?
   ↓
PHP 文件是否解析?

八、常见错误速查表

错误 原因
403 权限 / index 文件
404 root 路径错误
502 PHP-FPM 没启动
504 PHP 执行超时
下载 PHP Nginx 未解析 PHP

九、你需要我进一步帮你?

你可以直接贴出:

  • ❌ 报错截图 / 日志
  • nginx -t 输出
  • systemctl status 状态
  • ✅ Debian 版本

我可以逐行帮你定位问题,甚至直接给你一份可用的 LNMP 标准配置

0