在 Linux LNMP(Linux, Nginx, MySQL, PHP)环境下进行故障排查通常涉及以下步骤:
1. 确认故障现象
- 收集用户反馈:了解用户报告的故障现象。
- 系统告警信息:查看系统日志和监控工具发出的告警。
2. 确认系统基本信息
- 资源使用情况:使用
top
,htop
,vmstat
,iostat
等命令检查 CPU、内存、磁盘和网络的使用情况。 - 系统版本和配置:确认系统版本、内核版本、软件版本和配置文件是否正常。
3. 查看日志
- Nginx 日志:通常位于
/var/log/nginx/error.log
。 - PHP-FPM 日志:通常位于
/var/log/php-fpm/error.log
。 - MySQL 日志:慢查询日志通常位于
/var/log/mysql/slow.log
,错误日志位于/var/log/mysql/error.log
。
4. 检查网络连通性
- 使用
ping
,traceroute
,telnet
等命令检查服务器之间的网络连通性。
5. 检查服务进程
- 使用
ps
,top
,netstat
等命令检查 Nginx、PHP-FPM 和 MySQL 服务是否正常运行。
6. 检查服务配置
- 确认 Nginx、PHP-FPM 和 MySQL 的配置文件是否正确,特别是监听地址、端口、用户权限等。
7. 检查服务器安全
- 查看系统安全日志、用户列表、防火墙设置等,排查是否存在安全问题。
8. 联系供应商或开发团队
- 如果以上步骤都无法解决问题,可以联系相关的供应商或开发团队寻求帮助。
9. 解决问题并修复
- 根据排查结果,采取相应的解决措施进行修复。
10. 总结分析
- 对故障排查过程进行总结和分析,记录问题和解决方案,以便未来参考。
常用命令
- LNMP 状态管理:
/root/lnmp {startstopreloadrestartkillstatus}
- Nginx 状态管理:
/etc/init.d/nginx {startstopreloadrestart}
- MySQL 状态管理:
/etc/init.d/mysql {startstoprestartreloadforce-reloadstatus}
- PHP-FPM 状态管理:
/etc/init.d/php-fpm {startstopquitrestartreloadlogrotate}
常见问题及解决方法
- 502 Bad Gateway:可能是配置错误、权限问题或 PHP-FPM 资源耗尽。检查
nginx
和php-fpm
的配置文件,确保fastcgi_pass
一致,并调整pm.max_children
数值。
通过以上步骤和命令,可以系统地进行 LNMP 环境的故障排查,快速定位并解决问题。