温馨提示×

centos怎样优化php配置

小樊
34
2026-09-05 22:31:24
栏目: 编程语言

在 CentOS 上优化 PHP 配置,通常分为 PHP-FPM / PHP-CLI 配置优化、系统层面优化、业务层面优化 三部分。下面以 CentOS 7/8 + PHP-FPM(Nginx/Apache 常见组合) 为例说明。


一、找到 PHP 配置文件

php -i | grep "Loaded Configuration File"

常见路径:

  • CLI:/etc/php.ini
  • FPM:/etc/php-fpm.conf/etc/php-fpm.d/www.conf

修改后重启:

systemctl restart php-fpm

二、PHP 基础参数优化(php.ini)

1. 内存相关

memory_limit = 256M
  • 普通站点:128M–256M
  • Laravel / 大型框架:512M

2. 上传与执行时间

upload_max_filesize = 50M
post_max_size = 50M
max_execution_time = 60
max_input_time = 60

3. 错误与日志

生产环境:

display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log

4. 禁用危险函数

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

三、PHP-FPM 进程优化(重点)

编辑:

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

1. 进程模式

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 ≈ 服务器内存 / 单个PHP进程占用

例如:

  • 4G 内存
  • 单进程 ~30M
  • max_children ≈ 100

2. 使用 Unix Socket(比 TCP 快)

listen = /run/php-fpm/www.sock

Nginx 中:

fastcgi_pass unix:/run/php-fpm/www.sock;

3. 慢日志(排查卡顿)

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

四、OPcache 加速(强烈推荐)

yum install php-opcache

php.ini:

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  ; 生产环境

五、系统层面优化(CentOS)

1. 文件描述符

ulimit -n 65535

永久:

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

2. 内核参数

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

六、常见场景建议

场景 建议
高并发 API 少进程 + OPcache
后台任务 CLI + 队列
内存小 pm = ondemand
大文件 调整 upload 参数

七、验证优化效果

php-fpm -t
top -c | grep php-fpm
ab -n 1000 -c 100 http://site/test.php

如果你能提供:

  • CentOS 版本
  • PHP 版本
  • Web 服务(Nginx/Apache)
  • 服务器配置(CPU/内存)

我可以给你一套 可直接用的配置模板

0