温馨提示×

怎么排查linux lamp故障

小樊
40
2026-10-18 09:13:07
栏目: 智能运维

排查 Linux 下 LAMP(Linux + Apache + MySQL/MariaDB + PHP) 故障,通常按“分层定位、看日志、逐项验证”的思路进行。下面给你一套实用排查流程,从最常见的问题开始。


一、先明确“故障现象”

先确认是哪一类问题:

  • 网站打不开(连接失败 / 404 / 500)
  • 页面能开但 PHP 不执行
  • 数据库连不上
  • 访问慢 / 偶发故障
  • 刚改过配置就出问题

二、系统与服务状态检查(最优先)

1. 看三大服务是否运行

systemctl status httpd      # 或 apache2
systemctl status mariadb   # 或 mysqld
systemctl status php-fpm   # 如果用了 php-fpm

常见命令:

ps aux | grep httpd
ps aux | grep mysql
netstat -tunlp | grep :80
netstat -tunlp | grep :3306

✅ 服务没起 → 先启动:

systemctl start httpd
systemctl start mariadb

三、Apache / Web 层排查

2. 看 Apache 错误日志(最重要)

tail -f /var/log/httpd/error_log
# 或
tail -f /var/log/apache2/error.log

常见错误:

  • Permission denied → 文件/目录权限问题
  • DocumentRoot does not exist → 配置路径错
  • 403 Forbidden → 目录权限或 SELinux

3. 检查虚拟主机配置

apachectl -t        # 语法检查

若报错,先修配置。

4. 权限 & SELinux

ls -l /var/www/html
getenforce

如果是 Enforcing 且网站异常:

setenforce 0   # 临时关闭测试

四、PHP 层排查

5. 确认 PHP 是否生效

建测试文件:

<?php phpinfo(); ?>

访问:

http://ip/info.php
  • 看到页面 → PHP OK
  • 下载文件 / 空白 → PHP 没解析

6. 查 PHP 错误日志

tail -f /var/log/php-fpm/error.log
# 或
vi /etc/php.ini   # 看 error_log

7. 常见 PHP 问题

  • 没装 php-mysql
  • display_errors = Off
  • short_open_tag 问题
  • 文件权限不是 apache 用户

五、MySQL / MariaDB 排查

8. 数据库能否连接

mysql -u root -p

连不上常见原因:

  • 服务没起
  • 端口被防火墙挡
  • 密码错误
  • 只允许 localhost

9. 看数据库日志

tail -f /var/log/mariadb/mariadb.log
# 或
tail -f /var/log/mysql/error.log

10. 防火墙 & 端口

firewall-cmd --list-all
iptables -L -n

六、网站代码 & 配置层

11. 网站配置文件

  • Apache vhost
  • .htaccess
  • 网站数据库连接配置(如 config.php)

重点看:

  • 数据库地址(localhost vs 127.0.0.1)
  • 用户名密码
  • 表是否存在

七、性能 / 偶发故障

  • Apache MaxClients 满
  • MySQL 慢查询
  • 磁盘满了:
df -h
  • 内存不足:
free -m

八、快速排查清单(实战版)

✅ 服务起没起
✅ 端口通不通
✅ 错误日志说什么
✅ PHP 是否解析
✅ 数据库能否连
✅ 权限 & SELinux
✅ 防火墙


如果你愿意,可以把具体报错信息或现象发出来(比如 500 错误、白屏、连不上数据库),我可以直接帮你定位到具体原因。

0 踩