温馨提示×

php-fpm在ubuntu如何提速

小樊
39
2026-08-12 09:54:13
栏目: 编程语言

在 Ubuntu 上提升 php-fpm 性能,通常从 配置优化、系统资源、PHP 代码、服务器架构 四个层面入手。下面给你一套实用且可落地的优化清单,从最常见、收益最大的开始。


一、选择并确认正确的 PHP 版本

新版本本身就有明显性能提升:

php -v

✅ 建议:

  • PHP 8.1 / 8.2 / 8.3(性能最好,类型优化明显)
  • 老项目至少 PHP 7.4+

升级示例:

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2-fpm

二、php-fpm 核心配置优化(最关键)

1️⃣ 调整进程管理模式(pool 配置)

编辑:

sudo nano /etc/php/8.2/fpm/pool.d/www.conf

推荐配置(动态站点)

pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500

✅ 计算 pm.max_children 经验公式:

max_children ≈ 可用内存 / 单个 php-fpm 进程内存

查看单个进程内存:

ps aux | grep php-fpm

2️⃣ 使用 Unix Socket(比 TCP 快)

listen = /run/php/php8.2-fpm.sock
listen.owner = www-data
listen.group = www-data

Nginx 对应:

fastcgi_pass unix:/run/php/php8.2-fpm.sock;

3️⃣ 关闭不必要的 PHP 扩展

减少内存和启动开销:

php -m

禁用不用的扩展(如 xdebugjson 已内置):

sudo phpdismod xdebug

三、PHP 运行层面优化

4️⃣ 启用 OPcache(必开)

sudo apt install php8.2-opcache

编辑:

sudo nano /etc/php/8.2/fpm/conf.d/10-opcache.ini

推荐配置:

opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=32
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0   # 生产环境
opcache.revalidate_freq=0

✅ 可提升 30%~100% 性能


5️⃣ PHP 脚本执行时间 & 内存

max_execution_time = 30
memory_limit = 256M

四、系统 & 内核层面优化

6️⃣ 文件描述符限制

ulimit -n

提高:

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

7️⃣ TCP / Socket 优化(高并发)

sudo nano /etc/sysctl.conf
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535

生效:

sudo sysctl -p

五、Nginx 配合优化(非常重要)

fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 60;
fastcgi_read_timeout 60;

六、架构级提速(进阶)

✅ 使用 PHP 8.2+ JIT(适合 CPU 密集型)

opcache.jit=1255
opcache.jit_buffer_size=128M

✅ 静态资源不走 php-fpm

location ~* \.(js|css|png|jpg|gif|ico|svg|woff2)$ {
    expires 30d;
    access_log off;
}

七、性能检测 & 压测

查看 php-fpm 状态

sudo nano /etc/php/8.2/fpm/pool.d/www.conf
pm.status_path = /status

Nginx:

location /status {
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    include fastcgi_params;
}

压测

ab -n 1000 -c 50 http://your-site.com/

八、推荐“黄金组合”(生产环境)

Ubuntu 22.04 / 24.04
PHP 8.2-fpm + OPcache
Nginx
Unix Socket
pm = dynamic
关闭 xdebug


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

  • 内存多大(2G / 4G / 8G)
  • 单站点还是多站点
  • 并发量(日 PV / 秒请求)

我可以 直接给你一套定制化的 php-fpm 配置

0