优化 Ubuntu 上的 PHP 配置,核心目标是提升性能、增强稳定性、保障安全。下面按“步骤 + 常用配置项 + 场景建议”来讲解,适用于 Ubuntu 20.04/22.04/24.04(PHP 7.4 / 8.x 均适用)。
php -v
php -i | grep "Server API"
常见模式:
fpm-fcgiapache2handler✅ Web 服务器建议使用 PHP-FPM + Nginx / Apache
ls /etc/php/*/fpm/pool.d/
通常是:
/etc/php/8.2/fpm/pool.d/www.conf
编辑 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 |
dynamic(均衡)或 ondemand(低内存) |
pm.max_children |
根据内存计算 |
pm.max_requests |
防止内存泄漏 |
max_children ≈ 总内存 / 单个 PHP 进程内存
例如:
max_children ≈ 40php --ini
常见路径:
/etc/php/8.2/fpm/php.ini
; 脚本最大执行时间(秒)
max_execution_time = 60
; 内存限制
memory_limit = 256M
; POST 数据大小
post_max_size = 64M
; 上传文件大小
upload_max_filesize = 64M
; 时区
date.timezone = Asia/Shanghai
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=2
opcache.fast_shutdown=1
✅ 开启后性能可提升 2~5 倍
disable_functions = exec,passthru,shell_exec,system,proc_open,popen
减少加载项,提高启动速度:
php -m
移除不用的扩展:
apt remove php8.2-xxx
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_read_timeout 120;
a2enmod proxy_fcgi setenvif
a2enconf php8.2-fpm
systemctl status php8.2-fpm
/var/log/php8.2-fpm.log
systemctl restart php8.2-fpm
| 场景 | 建议 |
|---|---|
| 小型博客 | pm = ondemand |
| 高并发 API | pm = dynamic |
| 大内存服务器 | 增大 opcache.memory |
| 低内存 VPS | 降低 pm.max_children |
pm.*memory_limit如果你愿意,可以告诉我:
我可以直接给你一份可复制使用的优化配置。