插件窝 干货文章 LAMP服务器故障排查技巧

LAMP服务器故障排查技巧

检查 Apache mysql php 565    来源:    2025-05-08

LAMP服务器故障排查技巧

一、基础检查流程

  1. 服务状态检查

    systemctl status apache2   # 检查Apache状态
    systemctl status mysql      # 检查MySQL状态
    systemctl status php-fpm   # 检查PHP-FPM状态(如使用)
    
  2. 端口监听检查

    netstat -tulnp | grep -E '80|3306'  # 检查HTTP和MySQL端口
    ss -tulnp | grep -E '80|3306'       # 替代netstat的现代方法
    
  3. 错误日志检查

    tail -f /var/log/apache2/error.log  # Apache错误日志
    tail -f /var/log/mysql/error.log    # MySQL错误日志
    journalctl -xe                      # 系统日志
    

二、分层排查方法

1. Linux系统层

  • 资源检查

    top                  # 实时系统资源监控
    free -h              # 内存使用情况
    df -h                # 磁盘空间检查
    
  • 防火墙/SELinux

    iptables -L -n       # 检查防火墙规则
    getenforce           # 检查SELinux状态
    

2. Apache层

  • 配置测试

    apachectl configtest # 检查Apache配置语法
    
  • 模块检查

    apachectl -M         # 列出加载的模块
    

3. MySQL层

  • 连接测试

    mysql -u username -p # 测试数据库连接
    
  • 性能检查

    SHOW PROCESSLIST;    # 查看当前连接和查询
    SHOW STATUS;         # 查看服务器状态
    

4. PHP层

  • PHP信息检查

    php -v               # 检查PHP版本
    php -m               # 检查加载的PHP模块
    
  • PHP测试脚本

    <?php phpinfo(); ?>  # 创建info.php测试脚本
    

三、常见问题及解决方案

  1. Apache无法启动

    • 检查端口冲突:sudo lsof -i :80
    • 检查配置文件语法:apachectl configtest
    • 检查错误日志:tail -n 50 /var/log/apache2/error.log
  2. MySQL连接问题

    • 检查用户权限:SELECT Host,User FROM mysql.user;
    • 检查绑定地址:bind-address in /etc/mysql/my.cnf
    • 检查最大连接数:max_connections参数
  3. PHP脚本不执行

    • 检查Apache PHP模块是否加载
    • 确保文件有.php扩展名
    • 检查文件权限:chmod 644 *.php
  4. 性能问题

    • 启用Apache的mod_status监控
    • 优化MySQL配置(my.cnf)
    • 使用OPcache加速PHP

四、高级工具

  1. 性能监控

    htop                # 增强型top
    mytop               # MySQL监控
    apachetop           # Apache实时监控
    
  2. 调试工具

    strace -p <PID>     # 跟踪系统调用
    tcpdump port 80     # 网络包分析
    
  3. 基准测试

    ab -n 1000 -c 100 http://yoursite.com/  # Apache基准测试
    sysbench                             # 数据库基准测试
    

五、预防措施

  1. 定期维护

    • 设置日志轮转
    • 定期更新软件包
    • 备份重要配置和数据
  2. 监控设置

    • 配置监控告警(如Nagios, Zabbix)
    • 设置性能基线
  3. 安全加固

    • 定期审计权限
    • 更新安全补丁
    • 配置防火墙规则

通过系统化的分层排查方法,可以快速定位LAMP服务器中的各类问题,提高故障处理效率。