在 Ubuntu 上优化 php-fpm 速度,通常从 配置调优、系统资源、OPcache、PHP 版本、NGINX/Apache 配合 几个方面入手。下面按“立竿见影 → 进阶优化”给你一套实用方案。
OPcache 能把 PHP 脚本编译结果缓存,避免每次请求都重新编译。
sudo apt install php-opcache
sudo nano /etc/php/8.2/fpm/conf.d/10-opcache.ini
推荐配置:
opcache.enable=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=128M
opcache.jit=1255
⚠️ 改完必须重启
sudo systemctl restart php8.2-fpm
配置文件:
/etc/php/8.2/fpm/pool.d/www.conf
static 或 dynamicpm = dynamic
pm.max_children = 30
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm = static
pm.max_children = 100
⚠️
max_children估算:
max_children ≈ 可用内存 / 单个 php-fpm 进程内存
查看进程内存:
ps aux | grep php-fpm
减少加载时间:
php -m
禁用不用的(如 xdebug,生产环境千万别开):
sudo phpdismod xdebug
PHP 8.x 比 7.x 快很多:
sudo apt install php8.2-fpm
切换:
sudo update-alternatives --set php /usr/bin/php8.2
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=PHP:10m;
ulimit -n 65535
sudo fallocate -l 2G /swapfile
slowlog = /var/log/php-fpm-slow.log
request_slowlog_timeout = 2s
top
htop
iotop
✅ PHP 8.2+
✅ OPcache + JIT
✅ php-fpm static
✅ Unix socket
✅ NGINX fastcgi cache
✅ 无 xdebug
如果你愿意,可以告诉我:
我可以直接给你 一份可复制的配置文件。