温馨提示×

centos如何优化php配置

小樊
38
2026-09-08 20:10:37
栏目: 编程语言

在 CentOS 上优化 PHP 配置,通常取决于你使用的 PHP 版本(PHP 7.x / 8.x)运行模式(PHP-FPM / mod_php / CLI) 以及业务场景(Web 高并发 / 后台任务 / 内存敏感)。下面给你一套实战向的 CentOS PHP 优化指南,可直接照着改。


一、确认 PHP 运行环境

php -v
php -m

查看 PHP 运行模式:

php -i | grep "Server API"

常见结果:

  • FPM/FastCGI → 优化 php-fpm.conf
  • CLI → 优化 php.ini
  • Apache 2.0 Handler → mod_php(不推荐新项目)

二、PHP-FPM 核心优化(最常见)

1. 找到配置文件

/etc/php-fpm.d/www.conf
# 或
/etc/php-fpm.conf

2. 进程模式选择(重要)

高并发 Web(推荐 dynamicondemand

pm = dynamic
pm.max_children = 100
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 30
pm.max_requests = 500

说明:

  • max_children ≈ 内存 / 单进程内存
  • max_requests 防止内存泄漏

低内存服务器(推荐 ondemand

pm = ondemand
pm.max_children = 50
pm.process_idle_timeout = 10s

三、php.ini 性能优化(关键参数)

路径示例:

/etc/php.ini
# 或
/etc/php/7.4/fpm/php.ini

1. 禁用危险 & 无用函数

disable_functions = exec,passthru,shell_exec,system,proc_open,popen

2. 文件上传 & 执行时间

upload_max_filesize = 20M
post_max_size = 24M
max_execution_time = 30
max_input_time = 60

3. 内存限制

memory_limit = 256M

(Laravel / Symfony 建议 256M+)

4. 关闭不必要的功能

expose_php = Off
display_errors = Off
log_errors = On

四、OPcache 加速(必开)

1. 安装

yum install php-opcache -y

2. 配置(php.ini)

[opcache]
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.validate_timestamps=0

生产环境 validate_timestamps=0,改代码后重启 PHP-FPM


五、CentOS 系统级配合优化

1. 文件描述符

ulimit -n 65535

永久生效:

/etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535

2. 内核参数(高并发)

/etc/sysctl.conf
net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
sysctl -p

六、PHP-FPM 重启 & 验证

systemctl restart php-fpm
php-fpm -t   # 配置语法检查

查看进程:

ps aux | grep php-fpm

七、推荐组合(总结)

✅ Web 服务:

  • PHP-FPM + OPcache
  • dynamic / ondemand
  • 关闭 display_errors

✅ 后台任务(CLI):

  • 单独 php.ini
  • 大 memory_limit
  • 长 max_execution_time

如果你愿意,可以告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • PHP 版本
  • 是否 Nginx / Apache
  • 并发量 & 内存大小

我可以直接帮你给一套可复制的配置文件

0