在 Ubuntu 上 PHP 变慢,通常不是单一原因,而是环境、配置、代码或系统资源的综合问题。下面按最常见 → 较少见的顺序给你系统排查思路。
很多人以为“装了 PHP 就快”,其实:
mod_php(Apache 内嵌)✅ 快php-fpm + Nginx ✅ 快(推荐)CGI ❌ 很慢✅ 检查:
php -v
Web 下看:
phpinfo();
Ubuntu 默认 www.conf 很保守。
查看:
/etc/php/*/fpm/pool.d/www.conf
重点参数:
pm = dynamic
pm.max_children = 5 # 太小
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
✅ 建议(4G 内存示例):
pm.max_children = 30
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 15
重启:
systemctl restart php*-fpm
没开 Opcache,PHP 每次都重新编译,慢 3–10 倍。
检查:
php -i | grep opcache
✅ 开启:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
重启 PHP。
Ubuntu + 机械盘 / 低 IOPS 云盘:
✅ 检查:
iotop
df -h
Session 放内存:
session.save_path = /dev/shm
Laravel / Symfony:
APP_DEBUG=true # 慢
✅ 生产必须:
APP_DEBUG=false
composer dump-autoload -o
// 错误示例
foreach ($users as $u) {
$u->posts; // 每次查一次
}
✅ 用:
User::with('posts')->get();
free -h
swapon --show
✅ 如果 swap 频繁使用,PHP 会“假死”。
Ubuntu 20.04 默认 PHP 7.4
Ubuntu 22.04 默认 PHP 8.1
✅ 升级明显更快:
sudo add-apt-repository ppa:ondrej/php
PHP 里 gethostbyname()、邮件、curl 很慢。
✅ 检查:
nslookup example.com
php -v
php -i | grep opcache
systemctl status php*-fpm
free -h
iotop
你可以告诉我:
我可以直接给你针对性配置。