在 Ubuntu 上优化 PHP(通常指 PHP-FPM + Nginx/Apache 环境),可以从系统、PHP 配置、OPcache、FPM 进程、代码与缓存几个方面入手。下面按实用性给你一套常见优化方案。
优先使用较新稳定版(如 PHP 8.1 / 8.2 / 8.3):
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2-fpm php8.2-cli
sudo apt install php8.2-opcache
/etc/php/8.2/fpm/php.iniopcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.validate_timestamps=0 ; 生产环境建议关闭
重启:
sudo systemctl restart php8.2-fpm
配置文件:
/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
pm = static
pm.max_children = 100
公式参考:
max_children ≈ 内存 / 单进程内存(通常 30~80MB)
查看进程内存:
ps -ylC php-fpm8.2 --sort:rss
减少内存和加载时间:
php -m
禁用不用的(如 xdebug 生产必须关):
; zend_extension=xdebug.so
ulimit -n 65535
/etc/security/limits.conf:
* soft nofile 65535
* hard nofile 65535
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo apt install redis-server
PHP:
sudo apt install php8.2-redis
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=PHP:100m inactive=60m;
fastcgi_cache PHP;
fastcgi_cache_valid 200 60m;
htopphp-fpm statusab -n 1000 -c 100 http://site.com/
如果你能告诉我:
我可以给你更精准的优化配置。