温馨提示×

Ubuntu LNMP故障排查技巧有哪些

小樊
56
2025-07-15 11:17:04
栏目: 智能运维

在Ubuntu上搭建的LNMP(Linux, Nginx, MySQL/MariaDB, PHP)环境中进行故障排查,可以按照以下步骤进行:

检查服务状态

  • Nginx:使用命令 sudo systemctl status nginx 检查Nginx是否正在运行。如果服务未运行,可以使用 sudo systemctl start nginx 来启动它。
  • MySQL/MariaDB:使用命令 sudo systemctl status mysqlsudo systemctl status mariadb 检查MySQL或MariaDB服务状态。如果服务未运行,可以使用 sudo systemctl start mysqlsudo systemctl start mariadb 来启动它。
  • PHP-FPM:使用命令 sudo systemctl status php7.0-fpm 或对应的PHP版本检查PHP-FPM服务状态。如果服务未运行,可以使用 sudo systemctl start php7.0-fpm 或对应的PHP版本来启动它。

检查日志文件

  • Nginx:查看Nginx的错误日志,通常位于 /var/log/nginx/error.log
  • MySQL/MariaDB:查看MySQL或MariaDB的错误日志,通常位于 /var/log/mysql/error.log
  • PHP:查看PHP的错误日志,通常位于 /var/log/php7.0-fpm.log/var/log/php-fpm/error.log

配置文件检查

  • Nginx:检查Nginx配置文件 /etc/nginx/nginx.conf 和站点配置文件 /etc/nginx/sites-available/default,确保语法正确且端口配置无误。
  • MySQL/MariaDB:检查MySQL或MariaDB配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf/etc/mysql/mariadb.conf.d/50-server.cnf
  • PHP:检查PHP配置文件 /etc/php/7.0/fpm/php.ini

网络问题排查

  • 网络连接:使用 ping 命令检查服务器能否访问互联网,例如 ping 8.8.8.8
  • DNS解析:使用 nslookupdig 命令检查DNS解析是否正常,例如 nslookup www.google.com
  • 防火墙设置:使用 sudo ufw status 检查防火墙状态,确保相关端口(如22, 80, 443, 3306)未被阻止。

权限问题排查

  • 文件和目录权限:确保Nginx和PHP-FPM进程有权限访问网站文件和目录。
  • 用户权限:检查MySQL用户权限,确保用户具有访问数据库的权限。

使用工具进行诊断

  • top/htop:查看系统资源使用情况,如CPU、内存、磁盘I/O和网络。
  • vmstat:查看系统虚拟内存统计信息。
  • iostat:查看磁盘I/O统计信息。
  • netstat:查看网络连接状态。

具体问题处理

  • 数据库连接失败:检查数据库服务是否启动,配置文件是否正确,防火墙是否阻止了数据库端口。
  • Nginx无法启动:检查Nginx配置文件是否有语法错误,端口是否被占用。
  • PHP无法运行:查看PHP错误日志,检查PHP配置文件和扩展。

如果在进行以上排查后问题仍未解决,建议查阅相关服务的错误日志,以便更具体地定位问题所在。

0