温馨提示×

centos为何php运行慢

小樊
46
2026-10-20 08:29:33
栏目: 编程语言

在 CentOS 上 PHP 运行慢,通常不是“CentOS 本身慢”,而是环境配置、资源、代码或扩展的问题。下面按常见原因 → 排查方法 → 解决建议给你系统梳理。


一、最常见原因(90% 场景)

1️⃣ PHP 运行模式不对(CGI / mod_php / php-fpm)

模式 性能
mod_php 一般
php-cgi 慢
php-fpm ✅ 推荐

✅ 检查:

ps aux | grep php

如果是 php-fpm 最好。


2️⃣ php-fpm 配置过低(并发不够)

默认配置往往只开几个进程。

查看:

cat /etc/php-fpm.d/www.conf

重点参数:

pm = dynamic
pm.max_children = 5     # 太小
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

✅ 建议(4核8G示例):

pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

重启:

systemctl restart php-fpm

3️⃣ OPcache 没开(非常关键)

没开 OPcache,PHP 每次都重新编译。

检查:

php -m | grep opcache

如果没有:

yum install php-opcache

php.ini:

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000

4️⃣ DNS 解析慢(隐藏杀手)

PHP 中如果有:

  • mail()
  • gethostbyname()
  • 数据库用域名

会卡在 DNS。

✅ 解决:

  • 数据库用 127.0.0.1 而不是 localhost
  • /etc/resolv.conf 去掉无效 DNS

5️⃣ SELinux 干扰(CentOS 特有)

SELinux 会导致文件访问慢。

临时测试:

setenforce 0

如果变快了:

getenforce

✅ 正确做法是配置策略,而不是长期关闭。


二、服务器资源问题

6️⃣ 内存不足 → 频繁 swap

free -h

如果有 swap 被大量使用:

top

✅ 解决:

  • 增加内存
  • 调小 php-fpm 进程数

7️⃣ 磁盘 IO 慢

iostat -x 1

如果是云服务器(低 IO 盘),会很明显。

✅ 建议:

  • 日志不要太多
  • session 放内存(/dev/shm)

三、PHP 代码问题

8️⃣ 慢代码

用:

yum install php-xdebug

或:

microtime(true)

常见慢点:

  • 循环里查数据库
  • 大量 file_get_contents
  • 不合理正则

9️⃣ 框架未开启生产模式

如:

  • Laravel:APP_ENV=production
  • ThinkPHP:关闭 debug

四、快速自查清单(照着做)

php -v
php -m | grep opcache
ps aux | grep php-fpm
free -h
top

五、如果你愿意,我可以更精准帮你

你可以直接贴:

  1. CentOS 版本
  2. PHP 版本
  3. 用的什么程序(WP / Laravel / 自建)
  4. php-fpm.conf 或 www.conf
  5. 慢到什么程度(几秒?)

我可以直接帮你定位是哪一层慢。

0 踩