Ubuntu 上 Apache 访问慢,通常不是“Apache 本身慢”,而是某一项被卡住了。下面按最常见 → 较少见给你一个排查清单,基本能覆盖 90% 的情况。
Apache 默认会尝试对客户端 IP 做 反向 DNS 解析,如果 DNS 不通,就会卡几秒。
✅ 解决:
sudo nano /etc/apache2/apache2.conf
加入或确认:
HostnameLookups Off
然后:
sudo systemctl restart apache2
.htaccess(AllowOverride All)Apache 会在每一级目录都去读 .htaccess,非常慢。
✅ 检查:
grep -R AllowOverride /etc/apache2/
✅ 建议(生产环境):
AllowOverride None
不是 Apache 慢,是 PHP 慢。
排查:
top
看 php-fpm 或 apache2 是否 CPU 100%
常见原因:
file_get_contents(http://...)✅ 建议:
Ubuntu 默认可能是 prefork,不适合高并发。
查看:
apachectl -V | grep MPM
✅ 推荐(PHP 网站):
sudo a2dismod php*
sudo apt install php-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php-fpm
测试:
ping your-server-ip
curl -I http://localhost
iostat -x 1
如果 %util 接近 100%,说明磁盘瓶颈。
Apache 监听:
Listen 80
但系统优先 IPv6,可能卡。
✅ 解决:
Listen 0.0.0.0:80
# 本地测试速度
time curl -s http://localhost/
# 看 Apache 错误
sudo tail -f /var/log/apache2/error.log
# 看访问日志
sudo tail -f /var/log/apache2/access.log
你可以直接告诉我:
error.log 里有没有报错我可以直接帮你定位是哪一行配置或代码在拖慢。