温馨提示×

ubuntu php配置怎样调性能

小樊
43
2026-10-01 12:10:19
栏目: 编程语言

在 Ubuntu 上优化 PHP 性能,通常要从 PHP 版本、PHP-FPM 配置、OPcache、代码层面、系统资源 几个方面入手。下面是一套比较实用、可落地的调优方案(以 PHP-FPM + Nginx 常见环境为例)。


一、选对 PHP 版本(基础前提)

✅ 优先使用 PHP 8.1 / 8.2 / 8.3

  • 性能比 PHP 7.x 明显提升
  • 新版本自带很多优化
php -v

如需升级:

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

二、使用 PHP-FPM(不要用 mod_php)

Nginx + PHP-FPM 是性能最优组合。

确认:

systemctl status php8.2-fpm

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

配置文件位置:

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

1️⃣ 进程模式

推荐:

pm = dynamic

2️⃣ 进程数量(按内存算)

公式参考:

max children ≈ 服务器内存 / 单个PHP进程内存

示例(4G 内存):

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

高并发 API 服务:

pm = static
pm.max_children = 100

⚠️ 不要盲目调大,会 OOM


四、开启并优化 OPcache(必做)

安装

sudo apt install php8.2-opcache

配置(推荐)

/etc/php/8.2/fpm/php.ini

opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.validate_timestamps=0  ; 生产环境
opcache.jit_buffer_size=100M
opcache.jit=1255

validate_timestamps=0 上线后改代码要重启 PHP-FPM


五、关闭不必要的 PHP 模块

查看已加载模块:

php -m

常见可关:

  • xdebug(生产必须关)
  • profiler
sudo phpdismod xdebug

六、PHP 基础参数优化

php.ini:

memory_limit = 256M
max_execution_time = 30
upload_max_filesize = 20M
post_max_size = 20M
expose_php = Off

七、使用更快的 Session 存储

默认文件慢,可换 Redis:

sudo apt install redis-server php8.2-redis
session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"

八、Nginx 配合优化(顺带)

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

启用:

gzip on;

九、系统层面

  • 使用 SSD
  • 调整 swappiness
echo 10 | sudo tee /proc/sys/vm/swappiness
  • 使用 htop 观察 PHP-FPM 内存

十、验证性能是否提升

ab -n 1000 -c 100 http://localhost/

或:

wrk -t4 -c100 -d30s http://localhost/

总结(最快见效的 5 件事)

  1. 升级 PHP 8.x
  2. 开 OPcache + JIT
  3. 调 PHP-FPM 进程数
  4. 关 xdebug
  5. Session 用 Redis

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

  • Ubuntu 版本
  • PHP 版本
  • 内存大小
  • 是网站 / API / 商城?

我可以给你一套 精确配置参数。

0 踩