
LNMP (Linux, Nginx, MySQL/MariaDB, PHP) 架构的故障排查流程:
-
问题定位: 首先明确问题类型,例如502错误、500错误、性能瓶颈等。
-
日志分析: 检查关键日志文件,找出错误线索:
-
Nginx错误日志: 通常位于
/usr/local/nginx/logs/error.log。 -
PHP错误日志: 通常位于
/usr/local/php/var/log/php-fpm.log或/var/log/php7.0-fpm.log(取决于PHP版本)。 -
系统日志: 使用
tail -f /var/log/messages或journalctl查看系统事件日志。
-
Nginx错误日志: 通常位于
-
服务状态检查: 使用
systemctl status nginx和systemctl status php-fpm检查Nginx和PHP-FPM服务运行状态。ps aux | grep nginx和ps aux | grep php-fpm查看进程状态及数量。 -
资源监控: 使用
top或htop命令监控CPU、内存、磁盘I/O和网络资源使用情况,查找资源瓶颈。 -
配置文件验证: 仔细检查Nginx和PHP-FPM配置文件,确保路径和设置正确无误,例如
fastcgi_pass指向正确的PHP-FPM套接字或端口。 -
代码调试: 如果是PHP代码错误导致的500错误,查看PHP错误日志。在开发环境中启用错误显示:
ini_set('display_errors', '1'); error_reporting(E_ALL);。 -
数据库诊断: 检查MySQL慢查询日志 (
SHOW VARIABLES LIKE 'slow_query_log';和SHOW VARIABLES LIKE 'long_query_time';),并使用EXPLAIN分析SQL查询性能,优化慢查询。 -
网络状况排查: 使用
iftop或nethogs检查服务器带宽是否饱和,以及是否存在网络瓶颈。如果使用CDN,检查CDN配置和缓存状态。 -
系统资源限制检查: 检查
ulimit设置,确保Nginx和PHP-FPM有足够的资源限制,例如文件描述符和进程数。 -
服务重启: 修改配置文件后,使用
systemctl reload nginx和systemctl reload php-fpm重启服务应用更改。 -
监控工具: 使用监控工具(如Prometheus, Grafana)实时监控服务器和应用性能,以便及时发现问题。
通过以上步骤,通常可以有效解决LNMP架构下的常见故障。如果问题依然存在,建议寻求专业技术支持。










