在 Ubuntu 上优化 PHP(通常指 PHP-FPM + Nginx/Apache 环境),可以从系统、PHP 配置、Opcode、缓存、数据库、代码几个层面来做。下面给你一套实用、可落地的优化方案。
优先使用较新且稳定的版本:
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2-fpm php8.2-common
PHP 8.1 / 8.2 / 8.3 性能明显优于 7.x
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
pm.max_requests = 500
计算参考:
pm.max_children ≈ 服务器内存 / 单个 PHP 进程内存
(一般 30–80MB/进程)
查看进程内存:
ps -ylC php-fpm8.2 --sort:rss
sudo apt install php8.2-opcache
sudo nano /etc/php/8.2/fpm/php.ini
推荐配置:
opcache.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
查看已加载模块:
php -m
禁用无用模块(如:
sudo phpdismod json iconv # 仅示例,不要乱禁
常见可禁用:
xdebug(生产环境必须关)profilerfastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_read_timeout 60;
启用:
sudo apt install redis-server
sudo apt install php8.2-redis
用于:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
常见:
innodb_buffer_pool_size = 1G
query_cache_type = 0
ulimit -n 65535
echo 10 | sudo tee /proc/sys/vm/swappiness
file_get_contentscomposer install --optimize-autoloader --no-dev
htop
php-fpm status
ab -n 1000 -c 100 http://localhost/
✅ PHP 8.x
✅ OPcache
✅ PHP-FPM 进程数合理
✅ 关闭 xdebug
✅ Redis 缓存
✅ Nginx 优化
如果你愿意,我可以:
你现在是哪种 PHP 应用?