温馨提示×

ubuntu php配置为何慢

小樊
36
2026-09-07 11:42:43
栏目: 编程语言

在 Ubuntu 上 PHP 配置或请求变慢,通常不是单一原因,而是多个环节叠加。下面按最常见 → 较少见给你一个系统排查清单,并附上对应解决办法。


一、最常见原因(90% 的情况)

1. PHP 使用了 php-fpm 但配置不合理

如果你是 Nginx + PHP-FPM(Ubuntu 默认方式):

慢点通常在:

  • pm 模式不对
  • pm.max_children 太小
  • request_terminate_timeout 太长

检查:

ps aux | grep php-fpm

优化(示例):

; /etc/php/8.1/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

然后:

systemctl restart php8.1-fpm

2. OPcache 没开(非常关键)

PHP 慢的头号原因

检查:

php -i | grep opcache

开启:

; /etc/php/8.1/fpm/php.ini
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60

重启 PHP-FPM。

✅ 开启后通常快 3–10 倍


3. DNS 解析慢(隐藏杀手)

PHP 中只要有:

  • gethostbyname()
  • mail()
  • 某些框架初始化

如果 DNS 慢,PHP 会卡住。

临时测试:

php -r "echo gethostbyname('localhost');"

解决:

sudo nano /etc/hosts

确保有:

127.0.0.1 localhost
::1 localhost

二、Web 服务器相关

4. Nginx 配置问题

常见错误:

fastcgi_pass unix:/run/php/php8.1-fpm.sock;

但 socket 不存在或权限不对。

检查:

ls -l /run/php/

5. Apache + mod_php(不推荐)

Ubuntu 上 Apache + mod_php 比 FPM 慢很多。

✅ 建议换成:

  • Nginx + PHP-FPM
  • 或 Apache + php-fpm

三、PHP 应用层面

6. 框架自动加载未优化

  • Laravel / Symfony 没缓存
  • Composer 没 dump-autoload

Laravel:

php artisan config:cache
php artisan route:cache
php artisan optimize

Composer:

composer dump-autoload -o

7. 数据库慢(不是 PHP 慢)

PHP 本身很快,但 SQL 慢。

检查:

SHOW PROCESSLIST;

加索引、减少 N+1 查询。


四、系统资源问题

8. 磁盘 IO 慢(云服务器常见)

iostat -x 1

如果是:

  • 低配云服务器
  • 共享 CPU

PHP 会“看起来慢”。


9. SWAP 被频繁使用

free -h

如果大量使用 SWAP:

  • 加内存
  • 或降低 pm.max_children

五、快速自测方法(强烈推荐)

1. 纯 PHP 是否慢?

php -r "echo microtime(true);"

如果快 → 问题在 Web / DB
如果慢 → PHP 环境本身有问题


2. 开启 PHP 慢日志

; www.conf
request_slowlog_timeout = 5s
slowlog = /var/log/php-fpm-slow.log

六、典型“Ubuntu PHP 慢”总结

原因 是否常见
OPcache 没开 ⭐⭐⭐⭐⭐
FPM 配置不合理 ⭐⭐⭐⭐
DNS 卡 ⭐⭐⭐
DB 慢 ⭐⭐⭐
框架未优化 ⭐⭐⭐
磁盘 IO ⭐⭐

如果你愿意,可以告诉我:

  • Ubuntu 版本
  • PHP 版本
  • Web 服务器(Nginx / Apache)
  • 是否框架(Laravel / ThinkPHP 等)

我可以直接帮你给出精准配置

0