温馨提示×

怎样调试Debian LNMP

小樊
50
2026-09-01 20:40:42
栏目: 智能运维

在 Debian 上“调试 LNMP”(Linux + Nginx + MySQL/MariaDB + PHP)通常指排查 访问不了、502、PHP 不执行、数据库连不上、性能异常 等问题。下面按「排查思路 + 常用命令 + 典型故障」给你一套实用调试方法。


一、基础状态检查(先确认谁挂了)

1. 服务状态

systemctl status nginx
systemctl status php-fpm        # 或 php8.2-fpm
systemctl status mariadb        # 或 mysql

看是否 active (running)

2. 端口监听

ss -lntp

正常应看到:

  • 80 / 443(nginx)
  • 9000(php-fpm,如用 sock 则在 /run/php/
  • 3306(mysql/mariadb)

二、Nginx 调试

1. 测试配置

nginx -t

2. 查看错误日志

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

3. 常见 Nginx 问题

  • 502 Bad Gateway
    • php-fpm 没启动
    • fastcgi_pass 路径错误(sock 或 127.0.0.1:9000)
  • 403 Forbidden
    • 目录无权限
    • index 没配置
  • 404
    • root / location 配置错误

示例 PHP 站点配置:

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

三、PHP / PHP-FPM 调试

1. PHP 版本与模块

php -v
php -m | grep mysql

2. PHP-FPM 日志

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

3. 测试 PHP 是否执行

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

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

4. 常见 PHP 问题

  • session.save_path 无权限
  • open_basedir 限制
  • 缺少 php-mysql / php-fpm

四、MySQL / MariaDB 调试

1. 登录测试

mysql -u root -p

2. 错误日志

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

3. PHP 连不上数据库

  • 用户权限问题
GRANT ALL ON db.* TO 'user'@'localhost';
FLUSH PRIVILEGES;
  • 使用 127.0.0.1 而不是 localhost(socket 问题)

五、权限与 SELinux/AppArmor

Debian 默认 无 SELinux,但可能有 AppArmor

权限检查

ls -ld /var/www
ps aux | grep nginx

Nginx/PHP 用户通常是 www-data

修复权限:

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

六、系统级调试工具

1. 看资源占用

top
htop
df -h
free -m

2. 看网络连接

ss -antp

3. 防火墙

iptables -L
ufw status

七、典型故障速查表

现象 可能原因
502 php-fpm 未运行
空白页 PHP 报错被关
连不上 DB 权限 / host
很慢 SQL 慢查询
重启失效 配置写错

八、开启 PHP 错误显示(调试用)

php.ini

display_errors = On
error_reporting = E_ALL

如果你愿意,可以把:

  • Debian 版本
  • Nginx / PHP / MySQL 版本
  • 具体报错信息

发出来,我可以帮你精准定位

0