优化 Ubuntu 上的 PHP 性能可以从 PHP 本身、Web 服务器、系统层面、代码与架构 四个方面入手。下面给你一套比较实用、可落地的优化方案(适用于 Ubuntu 20.04 / 22.04 / 24.04)。
✅ 优先使用 PHP 8.x(8.1 / 8.2 / 8.3)
sudo apt update
sudo apt install php8.2 php8.2-fpm
查看版本:
php -v
不要使用 mod_php,而是:
✅ PHP-FPM + Nginx / Apache Event MPM
sudo apt install php8.2-fpm
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
编辑:
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
如果是 高并发 API / 电商站:
pm = static
pm.max_children = CPU核心数 × 2~4
查看内存,避免 OOM:
free -m
max_execution_time = 30
memory_limit = 256M
OPcache 能提升 30%~100% 的 PHP 性能。
sudo apt install php8.2-opcache
编辑:
/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
⚠️ 开发环境不要关闭
validate_timestamps
JIT 对 计算密集型 程序效果明显。
编辑 php.ini:
opcache.jit=1255
opcache.jit_buffer_size=128M
检查是否生效:
php -i | grep opcache.jit
worker_processes auto;
worker_connections 1024;
keepalive_timeout 65;
gzip on;
如果你用 Apache:
sudo a2enmod mpm_event
sudo a2dismod mpm_prefork
只保留必要扩展:
php -m
禁用无用扩展(如 xdebug 在生产环境必须关闭):
sudo phpdismod xdebug
ulimit -n
修改:
sudo nano /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
PHP session 可放内存:
session.save_handler = files
session.save_path = /tmp/php_sessions
或:
mount -t tmpfs tmpfs /tmp/php_sessions
✅ 使用 Redis 缓存
sudo apt install redis-server php8.2-redis
✅ 避免 PHP 直接跑复杂 SQL
ab -n 1000 -c 50 http://your-site.com/
htopphp-fpm statusnginx status| 项目 | 推荐 |
|---|---|
| OS | Ubuntu 22.04 / 24.04 |
| PHP | 8.2 / 8.3 |
| 模式 | PHP-FPM |
| Web | Nginx |
| 缓存 | OPcache + Redis |
| 架构 | 动静分离 |
如果你愿意,可以告诉我:
我可以按你的实际环境给你一套 精准优化方案。