温馨提示×

LNMP在Debian中的故障排查方法

小樊
46
2025-09-27 18:36:22
栏目: 智能运维

LNMP在Debian中的故障排查方法

1. 查看系统与服务日志

日志是故障排查的核心依据,可通过以下命令获取详细错误信息:

  • 系统日志tail -f /var/log/syslog(实时查看系统级日志)、journalctl -xe(查看系统服务日志);
  • Nginx日志tail -f /var/log/nginx/error.log(Nginx运行错误);
  • MySQL/MariaDB日志tail -f /var/log/mysql/error.log(数据库错误);
  • PHP-FPM日志tail -f /var/log/php7.x-fpm.log(PHP-FPM运行错误,版本需替换为实际安装的PHP版本)。
    通过日志可快速定位启动失败、配置错误等问题根源。

2. 检查服务运行状态

使用systemctl命令确认各组件是否正常运行:

  • sudo systemctl status nginx(Nginx状态);
  • sudo systemctl status mysql/mariadb(数据库状态);
  • sudo systemctl status php7.x-fpm(PHP-FPM状态,版本需替换)。
    若服务未运行,可使用sudo systemctl restart 服务名重启,并观察重启后的状态是否正常。

3. 验证配置文件语法

配置文件语法错误是常见故障原因,需逐一检查:

  • Nginxsudo nginx -t(测试配置文件语法,若输出“syntax is ok”则表示正常);
  • MySQL/MariaDBsudo mysqlcheck --all-databases --auto-repair(检查并修复数据库表);
  • PHP-FPMsudo php-fpm -t(测试PHP-FPM配置文件语法)。
    配置文件路径通常为:Nginx(/etc/nginx/nginx.conf)、MySQL(/etc/mysql/my.cnf)、PHP-FPM(/etc/php/7.x/fpm/php.ini)。

4. 检查端口占用与防火墙

  • 端口占用:使用sudo netstat -tulnp | grep 端口号(如80、3306、9000)检查所需端口是否被其他进程占用。若被占用,可修改对应服务的端口(如Nginx的listen指令)或停止占用进程;
  • 防火墙设置:使用sudo ufw status查看防火墙状态,确保允许HTTP(80)、HTTPS(443)流量:sudo ufw allow 'Nginx Full'。若使用iptables,需添加相应规则放行端口。

5. 排查资源瓶颈

使用以下命令检查系统资源使用情况:

  • 实时资源监控top(查看CPU、内存占用排名)、htop(更直观的资源监控);
  • 磁盘空间df -h(查看磁盘使用率,若根分区满会导致服务异常);
  • 内存使用free -h(查看内存及交换分区使用情况,内存不足会导致PHP-FPM崩溃)。
    资源不足时,需优化服务配置(如调整PHP-FPM的pm.max_children)或扩容服务器。

6. 处理常见特定问题

  • php-fpm启动失败:常见原因是/var/run/php7.x目录缺失(PHP-FPM进程用户无权限创建),解决方法:sudo mkdir -p /var/run/php7.x,并修改目录权限为www-data(Nginx/PHP-FPM默认用户);
  • 504 Bad Gateway错误:通常因PHP-FPM的listen.backlog设置过小或pm.max_requests未限制内存泄露。解决方法:修改/etc/php/7.x/fpm/pool.d/www.conf,将listen.backlog = 1024pm.max_requests = 200,然后重启PHP-FPM;
  • Nginx无法处理PHP请求:检查Nginx的PHP处理配置(location ~ \.php$块),确保fastcgi_pass指向正确的PHP-FPM socket(如unix:/run/php/php7.4-fpm.sock),并包含snippets/fastcgi-php.conf文件。

7. 更新与修复依赖

保持系统及组件最新,避免兼容性问题:

  • 更新软件包列表:sudo apt update
  • 升级已安装软件:sudo apt upgrade -y
  • 修复依赖关系:sudo apt install -f(自动修复缺失或冲突的依赖)。

0