温馨提示×

debian php慢怎么办

小樊
40
2026-09-17 07:15:43
栏目: 编程语言

在 Debian 上 PHP 运行慢,通常可以从系统、PHP 配置、Web 服务、代码、数据库几个层面来排查和优化。下面给你一套比较实用的思路。


一、先确认“慢”在哪里

不要一上来就调参数,先定位:

top
htop

看是:

  • CPU 跑满?
  • 内存不够(开始 swap)?
  • 磁盘 IO 高?
  • 还是请求本身响应慢(PHP 执行慢)?

Web 服务常见组合:

  • Nginx + PHP-FPM
  • Apache + mod_php / PHP-FPM

二、PHP-FPM 常见优化(最常见)

1. 查看 PHP 版本

php -v

建议:

  • 老项目:PHP 7.4
  • 新项目:PHP 8.1 / 8.2 / 8.3(性能明显更好)

升级示例:

sudo apt install php8.2 php8.2-fpm

2. 调整 PHP-FPM 进程数

配置文件:

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

重点参数(以 2G~4G 内存为例):

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

如果是高并发 API

pm = static
pm.max_children = 100

改完重启:

systemctl restart php8.2-fpm

3. 开启 OPcache(非常重要)

编辑:

/etc/php/8.2/fpm/php.ini
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60

重启 PHP-FPM。

✅ 通常开启 OPcache 后,PHP 速度能提升 2~5 倍


三、Nginx / Apache 优化

Nginx

fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
keepalive_timeout 30;

四、数据库慢(非常常见)

1. 慢查询日志

MySQL:

SHOW VARIABLES LIKE 'slow_query_log';

开启:

slow_query_log = 1
long_query_time = 1

2. 加索引

常见慢点:

  • WHERE 条件没索引
  • JOIN 没索引
  • ORDER BY 字段无索引

五、PHP 代码层面

1. 禁用不必要扩展

php -m

2. 使用缓存

  • Redis / Memcached
  • 页面缓存
  • 接口缓存

3. 常见性能杀手

  • file_get_contents() 远程请求
  • 循环里查数据库
  • glob() / scandir() 大量文件
  • var_dump() / print_r() 忘记删

六、系统层面

1. swap 问题

free -h

如果大量使用 swap:

  • 加内存
  • 或关 swap(仅限内存充足)

2. 磁盘 IO

iostat -x 1

七、快速自检清单 ✅

  • [ ] PHP 版本 ≥ 7.4
  • [ ] 已开启 OPcache
  • [ ] PHP-FPM 进程数合理
  • [ ] 数据库有索引
  • [ ] 无远程阻塞调用
  • [ ] 使用了 Redis / 缓存

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

  1. Debian 版本
  2. PHP 版本
  3. Nginx 还是 Apache
  4. 是网站慢还是 CLI 慢
  5. 内存多大

我可以直接帮你给一套针对性配置

0