在 Debian 上 PHP 运行缓慢,通常不是“Debian 本身”的问题,而是环境配置、扩展、资源或代码导致的。下面按常见原因→排查方法→解决建议来说明。
没有 OPcache,PHP 每次请求都会重新编译脚本。
检查
php -m | grep opcache
解决(Debian)
sudo apt install php-opcache
编辑:
/etc/php/*/cli/php.ini
/etc/php/*/fpm/php.ini
加入:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
重启:
sudo systemctl restart php*-fpm
✅ 这是提升最明显的一步
如果站点访问量稍高就慢:
检查
/etc/php/*/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
太小 → 请求排队
太大 → 内存爆
Debian + 云盘(尤其是低配云)很容易卡在磁盘。
检查
iostat -x 1
或
top
看 %wa 是否很高
解决
默认:
session.save_handler = files
解决(推荐)
session.save_handler = redis
或至少放 tmpfs:
mount -t tmpfs tmpfs /var/lib/php/sessions
Debian 旧版本可能默认 PHP 很低。
检查
php -v
建议
升级示例(Debian 12):
sudo apt install php8.2 php8.2-fpm
php -m | grep xdebug
解决
sudo phpdismod xdebug
常见缺失:
sudo apt install php-mysql php-curl php-gd php-mbstring
常见于:
排查
curl -w "%{time_total}\n" http://localhost
解决
free -h
如果有大量 swap 使用:
PHP CLI 执行慢,Web 正常 → DNS 问题
getent hosts localhost
解决
确保 /etc/resolv.conf 合理,或禁用 IPv6。
php -v
php -m | grep opcache
php -m | grep xdebug
free -h
iostat -x 1
如果你愿意,可以告诉我:
我可以直接帮你给出精确优化方案。