在 Ubuntu 上优化 PHP 性能,通常可以从 PHP 配置、OPcache、PHP-FPM、代码层面、系统与 Web 服务器 几个方面入手。下面给你一套比较实用、可落地的优化方案(适用于 Ubuntu 20.04/22.04,PHP 7.4 / 8.x)。
✅ 优先使用 PHP 8.x
查看当前版本:
php -v
升级示例(PHP 8.2):
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2 php8.2-fpm php8.2-cli
OPcache 能缓存编译后的 PHP 脚本,性能提升 30%~100%
一般已默认安装,确认:
php -m | grep 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=50000
opcache.validate_timestamps=0 # 生产环境
opcache.revalidate_freq=0
opcache.jit_buffer_size=128M
opcache.jit=1255
重启 PHP-FPM:
sudo systemctl restart php8.2-fpm
PHP-FPM 比 mod_php 更适合生产环境。
编辑:
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
经验公式:
max_children ≈ 可用内存 / 每个 PHP 进程内存
查看 PHP 进程内存:
ps aux | grep php-fpm
编辑 php.ini:
sudo nano /etc/php/8.2/fpm/php.ini
memory_limit = 256M
max_execution_time = 60
upload_max_filesize = 50M
post_max_size = 50M
expose_php = Off
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
}
JIT 对 CPU 密集型提升明显(如计算、图像处理)
确认开启:
opcache.jit=1255
opcache.jit_buffer_size=128M
查看是否生效:
php -i | grep jit
即使配置再好,烂代码也救不了性能。
✅ 优化建议:
file_get_contents()--no-dev --optimize-autoloadersudo apt install redis-server php8.2-redis
PHP 中:
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
ulimit -n
建议 ≥ 65535
sudo systemctl disable bluetooth
ab(Apache Bench)wrkphp-fpm statushtopopcache_get_status()示例:
ab -n 1000 -c 50 http://example.com/
| 项目 | 推荐 |
|---|---|
| PHP | 8.2 / 8.3 |
| 运行方式 | PHP-FPM |
| 缓存 | OPcache + Redis |
| Web 服务器 | Nginx |
| 系统 | Ubuntu 22.04 LTS |
如果你愿意,可以告诉我:
我可以给你一套 针对你环境的精准优化方案。