在 CentOS 上 PHP 配置或运行慢,常见原因和对应解决办法如下,按“从快到慢、从常见到冷门”整理:
PHP(尤其是 CLI 或某些扩展)会做反向 DNS 解析。
✅ 解决:
# 查看主机名
hostname
# 编辑 hosts
vi /etc/hosts
确保有:
127.0.0.1 localhost localhost.localdomain 你的主机名
::1 localhost
realpath_cache 没开导致每次都查文件路径,特别慢。
✅ 解决(php.ini):
realpath_cache_size = 4096k
realpath_cache_ttl = 600
很多 CentOS 默认加载大量扩展。
✅ 检查:
php -m
✅ 禁用示例(如不用):
mv /etc/php.d/20-xmlrpc.ini /etc/php.d/20-xmlrpc.ini.bak
systemctl restart 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
session 文件锁默认 session 文件,并发时阻塞。
✅ 解决:
session.save_handler = redis
; 或
session.save_path = "tcp://127.0.0.1:6379"
SELinux 会导致文件访问慢。
✅ 临时测试:
setenforce 0
✅ 永久关闭(不推荐生产):
vi /etc/selinux/config
SELINUX=disabled
尤其是虚拟机或云盘。
✅ 检查:
iostat -x 1
time php -i > /dev/null
request_slowlog_timeout = 2s
slowlog = /var/log/php-fpm/slow.log
✅ PHP 7.4 / 8.x
✅ PHP-FPM + Nginx
✅ OPcache 开启
✅ Redis 替代文件 session
如果你能补充说明:
我可以给你 精准配置方案。