在 Ubuntu 上 PHP 配置或运行“卡顿”,通常不是单一原因,而是以下几类问题之一。下面按最常见 → 较少见给你一个排查清单。
常见于:
典型表现
检查点
systemctl status php*-fpm
查看是否 active (running)
关键配置(php-fpm)
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
如果 max_children 太小,请求会排队 → 卡顿。
PHP 默认会做 反向 DNS 解析
典型现象
php -v 都慢解决办法
在 php.ini 中:
realpath_cache_size = 4096K
并确保:
; 关闭不必要的解析
disable_functions = ...
或者在 /etc/hosts 加上:
127.0.0.1 localhost your-hostname
PHP 7+ 强烈建议开启 OPcache
检查
php -m | grep opcache
推荐配置
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
没开 OPcache → 每次都重新编译 PHP → 明显卡。
PHP 项目(Laravel / ThinkPHP)文件极多
检查
iostat -x 1
优化
realpath_cache(见上)非常非常慢
/home 在 NFS建议
:cachedzend_extension=xdebug
只要有请求就慢 3–10 倍
解决
xdebug.mode=off
或只 CLI 开。
排查
php -i | less
free -h
如果频繁使用 swap → 卡死
Ubuntu 默认 AppArmor
某些 PHP 行为被限制 → 超时
# 1. PHP 是否慢
time php -v
# 2. fpm 状态
systemctl status php*-fpm
# 3. 是否有 xdebug
php -i | grep xdebug
# 4. opcache 是否开
php -i | grep opcache.enable
你可以贴出:
我可以直接给你一份精确配置方案。