首页主机资讯Debian上LNMP的故障排查指南

Debian上LNMP的故障排查指南

时间2025-12-03 15:31:04发布访客分类主机资讯浏览999
导读:Debian 上 LNMP 故障排查指南 一 快速定位流程 查看系统整体状态:使用 tail -f /var/log/syslog、journalctl -xe、dmesg 观察启动与运行报错;用 ps aux、top/htop 检查异常...

Debian 上 LNMP 故障排查指南

一 快速定位流程

  • 查看系统整体状态:使用 tail -f /var/log/syslogjournalctl -xedmesg 观察启动与运行报错;用 ps auxtop/htop 检查异常进程与资源占用;必要时用 strace 跟踪可疑进程的系统调用。
  • 检查网络连通与端口可达:对外部做 ping,对关键端口做 telnet 或 nc 测试;排查路由用 traceroute/mtr;本机端口与连接状态用 ss -tulpennetstat -tulpen
  • 确认服务是否运行与开机自启:对 Nginx、MySQL/MariaDB、PHP-FPM 执行 systemctl status/restart/enable,并优先看服务自身的错误日志。
  • 校验配置与语法:Nginx 执行 nginx -t;PHP-FPM 执行 php-fpm7.x -t(按实际版本);MySQL 可通过 mysqld --verbose --help | grep -A1 ‘Default options’ 确认读取的配置文件路径并检查。
  • 变更前先备份:配置文件与数据库先备份,变更后逐步回滚验证。

二 服务与日志定位对照表

症状 优先检查 关键命令与路径 常见修复
Nginx 无法访问/502/504 进程、端口、反向代理配置、PHP-FPM 连通性 systemctl status nginx;ss -lntp grep ‘80|443’;nginx -t;检查 fastcgi_pass 地址与端口;查看 /var/log/nginx/error.log
Nginx 启动失败 配置语法、端口占用、权限 nginx -t;ss -lntp grep ‘80|443’;释放占用端口;修正语法与目录权限
PHP-FPM 启动失败 套接字/目录权限、进程池配置 systemctl status php-fpm;php-fpm7.x -t 创建缺失目录(如 /var/run/php//run/php/);修正 listen.owner/group、listen.mode;检查 /etc/php/7.x/fpm/pool.d/www.conf
MySQL/MariaDB 无法启动 错误日志、数据目录权限、磁盘空间 systemctl status mysql;ls -ld /var/lib/mysql;df -h 依据 /var/log/mysql/error.log 修复权限/表损坏;释放磁盘空间;必要时 my.cnf 调优
网站白屏/报错但 Nginx 200 PHP 错误日志、display_errors、日志路径 tail -f /var/log/php7.x-fpm.log;php -i 开启/修复 log_errors;确保日志目录可写;修正语法错误
APT 更新失败 软件源、密钥、网络 tail -f /var/log/apt/term.log;ping 域名 更换 /etc/apt/sources.list 为可用镜像;导入缺失 GPG 密钥;检查 DNS/网络

说明:日志与配置路径在不同版本/安装方式下可能略有差异,常见位置包括 /var/log/nginx/error.log/var/log/mysql/error.log/var/log/php7.x-fpm.log/var/log/php-fpm.log;Nginx 主配置 /etc/nginx/nginx.conf,PHP-FPM 池配置 /etc/php/7.x/fpm/pool.d/www.conf

三 常见故障与修复要点

  • 502 Bad Gateway / 504 Gateway Timeout:多为 PHP-FPM 无响应或超时。检查 /var/log/nginx/error.logPHP-FPM 日志;确认 listen 地址与 Nginx 的 fastcgi_pass 一致;适当提高 pm.max_children、request_terminate_timeout,并优化慢查询与后端应用性能。
  • PHP-FPM 启动失败(目录缺失):老版本 php5-fpm 常见 /var/run/php5 目录缺失,执行 mkdir -p /var/run/php5 后重启;新版本使用 /run/php/,确保 listen.owner/grouplisten.mode 正确。
  • Nginx 配置测试通过但端口未监听:可能配置未生效或被其他进程占用;用 ss -lntp | grep ‘80|443’ 确认实际监听进程,释放端口或修正配置后 nginx -s reload
  • MySQL 启动失败:优先查看 /var/log/mysql/error.log;常见为 数据目录权限磁盘满InnoDB 恢复失败;按日志指引修复或恢复备份。
  • APT 源不可用/密钥错误:编辑 /etc/apt/sources.list 更换可用镜像;导入缺失 GPG 密钥;网络不通时先 ping 域名排查 DNS/路由。

四 一键诊断命令清单

  • 系统与健康:
    • 实时日志:tail -f /var/log/syslog
    • 资源占用:top/htop
    • 进程快照:ps aux
    • 内核与启动:dmesg | tailjournalctl -xe
  • 网络与端口:
    • 连通性:ping 8.8.8.8
    • 路由诊断:traceroute 8.8.8.8mtr 8.8.8.8
    • 本机端口:ss -tulpennetstat -tulpen
    • 服务端口:telnet 127.0.0.1 80nc -zv 127.0.0.1 3306
  • 服务与配置:
    • Nginx:systemctl status nginxnginx -t/var/log/nginx/error.log
    • MySQL:systemctl status mysql/var/log/mysql/error.log
    • PHP-FPM:systemctl status php-fpmphp-fpm7.x -t/var/log/php7.x-fpm.log
    • 调试:strace -p -f -o /tmp/strace.log
  • 维护与修复:
    • 更新:apt update & & apt upgrade
    • 依赖:apt-get -f install
    • 空间:df -hdu -sh /var/log /var/lib/mysql
    • 文件系统(离线):fsck(仅在关机且未挂载时执行)

五 排障最佳实践

  • 变更可控:修改前备份配置与数据库;变更后小步验证,保留回滚方案。
  • 先日志后改动:优先从 服务日志与系统日志 找到明确报错,再针对性修改。
  • 最小化改动:一次只调整一个变量(如 worker_processes、pm.max_children、timeout),便于定位因果。
  • 资源先行:遇到不稳定先查 CPU/内存/磁盘/连接数,排除基础资源瓶颈。
  • 版本与路径:注意 Debian 版本PHP 主次版本 的差异,配置文件与日志路径可能不同;不确定时以服务实际输出与日志为准。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian上LNMP的故障排查指南
本文地址: https://pptw.com/jishu/762425.html
如何优化Debian上的LNMP响应速度 在Debian上如何部署LNMP集群

游客 回复需填写必要信息