温馨提示×

如何调试debian lnmp

小樊
48
2026-09-16 23:48:27
栏目: 智能运维

调试 Debian 上的 LNMP(Linux + Nginx + MySQL/MariaDB + PHP) 环境,通常需要从 系统状态 → Nginx → PHP → 数据库 → 应用日志 逐层排查。下面给你一套实用调试流程。


一、基础检查(先确认服务是否运行)

1. 查看系统服务状态

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

如果没启动:

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

二、Nginx 调试

2. 检查 Nginx 配置语法

nginx -t

3. 查看 Nginx 错误日志

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

常见错误:

  • permission denied → 文件权限问题
  • connect() failed (111: Connection refused) → PHP-FPM 没跑
  • File not found → root 或 fastcgi 路径不对

4. 测试 Nginx 是否响应

curl -I http://localhost

三、PHP / PHP-FPM 调试

5. 确认 PHP-FPM 在监听

ps aux | grep php-fpm

检查监听方式(sock 或端口):

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

常见:

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

6. 测试 PHP 是否执行

创建测试文件:

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

浏览器访问:

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

如果下载文件 → Nginx 没解析 PHP
如果 502 → PHP-FPM 没运行或 sock 权限错误

7. PHP 错误日志

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

四、MySQL / MariaDB 调试

8. 数据库是否能连

mysql -u root -p

如果报错:

  • Access denied → 用户权限问题
  • Can't connect → 服务没启动

9. 查看数据库日志

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

10. PHP 连接数据库测试

<?php
$conn = new mysqli("localhost", "user", "pass", "db");
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
echo "OK";
?>

五、权限问题(Debian 最常见)

11. 网站目录权限

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

12. PHP-FPM sock 权限

ls -l /run/php/php8.2-fpm.sock

应为:

srw-rw---- www-data www-data

六、防火墙 & SELinux(Debian 基本无 SELinux)

ufw status

确保 80 / 443 开放:

ufw allow 80
ufw allow 443

七、常见 LNMP 故障速查表

现象 可能原因
502 Bad Gateway PHP-FPM 未启动 / sock 错误
403 Forbidden 目录无 index / 权限错误
404 root 路径不对
白屏 PHP 报错但 display_errors 关
数据库连接失败 账号 / host / 防火墙

八、建议你补充的信息(我可以更精准帮你)

你可以告诉我:

  1. Debian 版本(11 / 12?)
  2. Nginx + PHP 版本
  3. 具体报错(浏览器 / 日志)
  4. 是本地还是云服务器

我可以直接帮你读日志、改配置、写 Nginx 站点示例。

0 踩