温馨提示×

怎么调试Debian LNMP

小樊
37
2026-08-26 02:34:18
栏目: 智能运维

调试 Debian 上的 LNMP(Linux + Nginx + MySQL/MariaDB + PHP) 通常要分层次来查。下面给你一套系统化调试思路 + 常用命令,基本能覆盖 90% 的问题。


一、先确认整体状态

1️⃣ 系统环境

lsb_release -a
uname -a

2️⃣ 服务是否运行

systemctl status nginx
systemctl status mariadb   # 或 mysql
systemctl status php-fpm   # 看版本,如 php8.2-fpm

如果没启动:

systemctl start nginx
systemctl start mariadb
systemctl start php8.2-fpm

设置开机自启:

systemctl enable nginx mariadb php8.2-fpm

二、调试 Nginx(最常见)

1️⃣ 检查配置文件语法

nginx -t

2️⃣ 查看 Nginx 日志

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

3️⃣ 常见 Nginx 错误

现象 原因
502 Bad Gateway PHP-FPM 没启动 / sock 路径错
403 Forbidden 目录权限 / index 文件缺失
404 root 路径配置错误

4️⃣ 示例 Nginx 站点配置

server {
    listen 80;
    server_name example.com;

    root /var/www/html;
    index index.php index.html;

    location / {
        try_files $uri $uri/ =404;
    }

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

三、调试 PHP / PHP-FPM

1️⃣ PHP 是否正常工作

php -v

2️⃣ PHP-FPM 状态

systemctl status php8.2-fpm

3️⃣ 查看 PHP-FPM 日志

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

4️⃣ 确认 sock 文件存在

ls /run/php/

Nginx 里的 fastcgi_pass 必须匹配:

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

5️⃣ 测试 PHP

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

浏览器访问:

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

四、调试 MySQL / MariaDB

1️⃣ 服务状态

systemctl status mariadb

2️⃣ 登录数据库

mysql -u root -p

3️⃣ 查看数据库日志

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

4️⃣ 常见错误

错误 原因
Access denied 用户权限 / 密码错
连接失败 PHP 没装 mysql 扩展

5️⃣ 确认 PHP 支持 MySQL

php -m | grep mysql

如果没有:

apt install php-mysql
systemctl restart php8.2-fpm

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

1️⃣ Web 目录权限

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

2️⃣ SELinux(Debian 一般没开,CentOS 才有)

Debian 可忽略。


六、防火墙 & 端口

1️⃣ 检查端口

ss -lntp

2️⃣ 防火墙

ufw status

允许 HTTP:

ufw allow 80
ufw allow 443

七、快速排错顺序(推荐)

按这个顺序查,效率最高:

  1. nginx -t
  2. systemctl status nginx php-fpm mariadb
  3. Nginx error.log
  4. PHP-FPM log
  5. 权限
  6. 浏览器访问 + phpinfo

八、常见错误速查表

错误 解决
502 PHP-FPM 没启动
空白页 PHP 报错,看 log
403 权限 / index
数据库连接失败 php-mysql 没装

如果你愿意,可以把 具体报错信息 / 日志 / 配置文件 贴出来,我可以帮你精准定位问题(比如 502、404、PHP 不解析等)。

0