在 Ubuntu 上优化 PHP 配置,通常围绕 性能、稳定性、安全性和业务场景 来做。下面按「常见 PHP 运行方式 → 关键配置 → 实用优化建议」来说明。
不同方式优化重点不同:
php -v
php -m
常见运行模式:
查看 PHP-FPM 配置路径:
php --ini
通常:
/etc/php/8.x/fpm/php.ini
/etc/php/8.x/fpm/pool.d/www.conf
编辑:
sudo nano /etc/php/8.x/fpm/php.ini
expose_php = Off
display_errors = Off
log_errors = On
memory_limit = 256M ; 根据业务调整(API 128M,后台 512M)
max_execution_time = 30
max_input_time = 60
upload_max_filesize = 20M
post_max_size = 24M
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.validate_timestamps=0 ; 生产环境建议 0
开启后性能可提升 30%~70%
编辑:
sudo nano /etc/php/8.x/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
pm.max_requests = 500
计算公式(参考):
max_children ≈ 服务器内存 / 单个 PHP 进程内存
单个进程估算:
ps -ylC php-fpm --sort:rss
slowlog = /var/log/php-fpm/slow.log
request_slowlog_timeout = 5s
listen = /run/php/php8.x-fpm.sock
Nginx 中:
fastcgi_pass unix:/run/php/php8.x-fpm.sock;
ulimit -n
如过低,修改:
/etc/security/limits.conf
disable_functions = exec,passthru,shell_exec,system
allow_url_include = Off
session.cookie_secure = On
session.cookie_httponly = On
| 场景 | 建议 |
|---|---|
| API 服务 | OPcache + 少进程 |
| 后台管理 | 高 memory_limit |
| 高并发 | pm = static |
| 低内存 VPS | pm = dynamic,少 children |
sudo systemctl restart php8.x-fpm
sudo systemctl restart nginx
验证:
php -i | grep opcache
如果你愿意,可以告诉我:
我可以直接给你一套可复制的优化配置。