温馨提示×

centos php配置慢怎么解决

小樊
45
2026-09-26 23:43:48
栏目: 编程语言

在 CentOS 上 PHP 配置或运行慢,常见原因和对应解决办法如下,按“从快到慢、从常见到冷门”整理:


一、最常见原因(优先排查)

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

PHP(尤其是 CLI 或某些扩展)会做反向 DNS 解析。

✅ 解决:

# 查看主机名
hostname

# 编辑 hosts
vi /etc/hosts

确保有:

127.0.0.1   localhost localhost.localdomain 你的主机名
::1         localhost

2️⃣ php.ini 中 realpath_cache 没开

导致每次都查文件路径,特别慢。

✅ 解决(php.ini):

realpath_cache_size = 4096k
realpath_cache_ttl = 600

3️⃣ 禁用不必要的扩展

很多 CentOS 默认加载大量扩展。

✅ 检查:

php -m

✅ 禁用示例(如不用):

mv /etc/php.d/20-xmlrpc.ini /etc/php.d/20-xmlrpc.ini.bak
systemctl restart php-fpm

二、PHP-FPM 配置问题(Web 慢)

4️⃣ PHP-FPM 进程太少

高并发时排队。

✅ 修改:

vi /etc/php-fpm.d/www.conf
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

5️⃣ 使用了 session 文件锁

默认 session 文件,并发时阻塞。

✅ 解决:

session.save_handler = redis
; 或
session.save_path = "tcp://127.0.0.1:6379"

三、系统层面问题

6️⃣ SELinux 影响(CentOS 特有)

SELinux 会导致文件访问慢。

✅ 临时测试:

setenforce 0

✅ 永久关闭(不推荐生产):

vi /etc/selinux/config
SELINUX=disabled

7️⃣ 磁盘 IO 慢

尤其是虚拟机或云盘。

✅ 检查:

iostat -x 1

四、调试方法(定位慢在哪)

8️⃣ 查看 PHP 加载耗时

time php -i > /dev/null

9️⃣ 开启 PHP 慢日志(强烈推荐)

request_slowlog_timeout = 2s
slowlog = /var/log/php-fpm/slow.log

五、推荐组合(CentOS 最佳实践)

✅ PHP 7.4 / 8.x
✅ PHP-FPM + Nginx
✅ OPcache 开启
✅ Redis 替代文件 session


如果你能补充说明:

  • CentOS 版本(7 / 8 / Stream)
  • PHP 版本
  • 是 CLI 慢还是 Web 慢
  • 是否用了 Laravel / ThinkPHP

我可以给你 精准配置方案。

0 踩