温馨提示×

debian php慢为何

小樊
42
2026-09-02 03:29:48
栏目: 编程语言

在 Debian 上 PHP 运行“慢”,原因通常可以归为以下几类。你可以对照排查:


一、PHP 本身配置问题

1. opcache 未开启(最常见)

Debian 默认可能没装或没启用 OPcache。

检查:

php -m | grep opcache

如果没有:

apt install php-opcache

php.ini 中建议:

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60

2. 使用的是 php-cli 而不是 php-fpm

Web 环境应使用 php-fpm,而不是 CGI/mod_php。

检查:

ps aux | grep php-fpm

Nginx / Apache 是否正确使用 fpm?


3. pm 配置不合理(php-fpm)

/etc/php/*/fpm/pool.d/www.conf

常见错误:

pm = static
pm.max_children = 2   # 太少

建议:

pm = dynamic
pm.max_children = 20~50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

二、Web 服务器问题

4. Nginx / Apache 配置问题

  • Nginx 没走 fastcgi_pass
  • 静态资源也走 PHP
  • fastcgi_buffering 异常

示例(Nginx):

location ~ \.php$ {
    include fastcgi_params;
    fastcgi_pass unix:/run/php/php-fpm.sock;
}

三、数据库问题(非常常见)

5. MySQL / MariaDB 慢

PHP 慢,往往是 SQL 慢。

排查:

SHOW PROCESSLIST;

开启慢查询日志:

slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1

6. 没有使用连接池 / 每次都新建连接

  • 每次请求都 new PDO()
  • 没用持久连接(谨慎)

四、系统资源问题

7. 内存不足 / 频繁 Swap

free -h
top

如果 Swap 很高,PHP 会非常慢。


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

iostat -x 1

五、PHP 代码问题

9. 循环里查数据库

foreach ($users as $u) {
    $db->query("SELECT ..."); // ❌
}

应改为:

$db->query("SELECT ... WHERE id IN (...)");

10. 使用了老旧框架 / 大量 require

  • 没用 autoload
  • 每次加载上千文件

六、Debian 特有注意点

11. PHP 版本过旧

Debian 稳定版可能还是 PHP 7.4 / 8.1

查看:

php -v

建议至少 PHP 8.1+


12. DNS 解析慢

PHP 中如果用:

  • gethostbyname
  • mail()
  • 外部 API

会卡在 DNS。

测试:

dig example.com

七、快速排查清单(建议你按顺序做)

  1. ✅ 开启 opcache
  2. ✅ 用 php-fpm
  3. ✅ 看慢查询日志
  4. top / free / iostat
  5. ✅ 用 XHProf / Tideways 分析代码

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

  • Debian 版本(cat /etc/os-release
  • PHP 版本
  • Web 服务(Nginx / Apache)
  • 页面慢 还是 命令行慢
  • 是否有数据库

我可以帮你精准定位。

0