温馨提示×

centos lamp为啥访问慢

小樊
35
2026-09-24 11:43:22
栏目: 智能运维

在 CentOS 上搭建 LAMP(Linux + Apache + MySQL/MariaDB + PHP) 后,访问慢是一个常见问题,通常不是单一原因,下面按最常见 → 较少见给你梳理一下,并给出排查思路。


一、最常见原因(80% 都在这)

1️⃣ DNS 解析慢(非常常见)

Apache 默认会做 反向 DNS 解析(HostnameLookups)。

现象

  • 第一次访问特别慢
  • 本地 curl 也慢
  • 日志里 IP 显示正常但响应慢

解决

vim /etc/httpd/conf/httpd.conf

找到:

HostnameLookups On

改成:

HostnameLookups Off

然后:

systemctl restart httpd

2️⃣ PHP 未启用 OPcache(PHP 网站慢)

尤其是 WordPress、Laravel、ThinkPHP 等。

检查

php -m | grep opcache

如果没有:

yum install php-opcache -y

编辑 php.ini:

opcache.enable=1
opcache.memory_consumption=128
opcache.revalidate_freq=60

重启:

systemctl restart php-fpm   # 或 httpd

3️⃣ Apache 使用 prefork + PHP 模块(性能差)

老版本 CentOS 默认 prefork + mod_php

建议方案(强烈推荐)

  • Apache + PHP-FPM

检查

httpd -V | grep MPM

如果是 prefork,建议改为 event + php-fpm


4️⃣ MySQL / MariaDB 慢(SQL 查询多)

现象

  • 页面空白几秒
  • 数据库 CPU 高

排查

mysqladmin processlist

常见原因

  • 没加索引
  • 慢查询
  • 连接数不够

开启慢查询日志:

slow_query_log=1
slow_query_log_file=/var/log/mariadb/slow.log
long_query_time=1

二、系统 & 网络原因

5️⃣ SELinux / 防火墙(偶尔)

虽然一般不会“慢”,但可能:

  • 连接被拒绝重试
  • 端口异常

可临时测试:

setenforce 0

6️⃣ 磁盘 IO 慢(云服务器常见)

iostat -x 1

如果 %util 长时间 100%,说明磁盘瓶颈。


7️⃣ 内存不足 → 频繁 swap

free -m
swapon -s

如果大量使用 swap:

  • 增加内存
  • 优化 Apache/PHP 进程数

三、快速自查清单(建议按顺序来)

✅ 1. HostnameLookups 是否 Off
✅ 2. 是否启用 OPcache
✅ 3. Apache 是否用 PHP-FPM
✅ 4. MySQL 是否有慢查询
✅ 5. 内存 / IO 是否正常


四、如果你愿意,我可以直接帮你定位

你可以发我以下信息(越全越快):

  1. CentOS 版本(cat /etc/redhat-release)
  2. Apache / PHP / MySQL 版本
  3. 是静态页慢还是PHP 页面慢
  4. 是否是公网访问慢、内网也慢
  5. 网站类型(WordPress / 自研 / 框架)

我可以直接给你一份针对性优化方案。

0 踩