温馨提示×

怎样调试linux lnmp

小樊
40
2026-09-03 15:00:15
栏目: 智能运维

“调试 LNMP(Linux + Nginx + MySQL/MariaDB + PHP)”通常指定位并解决访问错误、性能问题或配置异常。下面按排查思路 + 常用命令 + 常见故障给你一套实用调试方法。


一、基础排查思路(推荐顺序)

  1. 确认服务是否运行
  2. 看错误日志(最关键)
  3. 逐层测试(Nginx → PHP → MySQL)
  4. 检查权限与配置
  5. 压测 / 性能问题单独分析

二、检查服务状态

1. 查看服务是否启动

systemctl status nginx
systemctl status php-fpm
systemctl status mysql

或(老系统):

service nginx status

2. 启动 / 重启

systemctl restart nginx
systemctl restart php-fpm
systemctl restart mysql

三、日志调试(最重要)

1. Nginx 日志

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

常见错误:

  • Permission denied → 权限问题
  • File not found → root / index 配置错误
  • connect() failed (111: Connection refused) → PHP-FPM 没起

2. PHP 错误日志

php -i | grep error_log

php-fpm 日志:

tail -f /var/log/php-fpm/error.log

PHP 本身错误:

<?php
phpinfo();

或临时开启:

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

3. MySQL 日志

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

测试连接:

mysql -u root -p

四、分层调试方法

✅ 1. 测试 Nginx 是否正常

curl http://localhost

若返回 Nginx 默认页 → Nginx OK


✅ 2. 测试 PHP 是否生效

新建:

vim /usr/share/nginx/html/info.php
<?php phpinfo(); ?>

访问:

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

看不到页面 → PHP-FPM 配置问题


✅ 3. 测试 PHP-FPM

ps aux | grep php-fpm

Nginx 配置中应有:

fastcgi_pass   unix:/run/php-fpm/www.sock;

检查 sock 文件是否存在:

ls -l /run/php-fpm/www.sock

✅ 4. 测试 MySQL 连接(PHP)

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

五、常见 LNMP 问题速查

❌ 502 Bad Gateway

原因:

  • php-fpm 未启动
  • fastcgi_pass 配置错误
  • sock 权限不对

解决:

systemctl restart php-fpm

❌ 403 Forbidden

  • 目录无权限
  • 没有 index 文件
chown -R nginx:nginx /var/www/html
chmod -R 755 /var/www/html

❌ 404 Not Found

  • root 路径错误
  • rewrite 规则问题

❌ 网站很慢

  • 慢查询
  • PHP 阻塞
  • 文件权限频繁检查

工具:

top
htop
iotop
mysqltuner

六、调试工具推荐

  • tcpdump:抓包
  • strace -p php-fpm_pid:追踪系统调用
  • nginx -t:检查配置
  • php-fpm -t

七、一句话总结

LNMP 调试 = 看日志 + 分层测 + 权限配置查

如果你有具体报错信息或场景(如 502、访问慢、WordPress 白屏),可以直接发出来,我可以帮你精准定位。

0