温馨提示×

ubuntu php配置慢如何解

小樊
37
2026-10-19 01:55:26
栏目: 编程语言

在 Ubuntu 上 PHP 运行/响应慢,一般可以从 PHP 本身、Web 服务器、系统资源、代码、扩展 几个层面来排查和优化。下面给你一套实用排查 + 优化清单。


一、先确认“慢”在哪里(很重要)

1️⃣ 是 PHP 慢,还是整站慢?

time curl http://localhost/
  • 如果 curl 很快,但浏览器慢 → 前端/网络问题
  • 如果 curl 也慢 → PHP / DB / 服务器问题

2️⃣ 查看 PHP 执行时间

<?php
echo microtime(true) - $_SERVER['REQUEST_TIME_FLOAT'];

或加:

phpinfo();

二、PHP 基础配置优化(最常见)

✅ 1. 使用 PHP-FPM(不要用 mod_php)

ps aux | grep php

推荐:

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

✅ 2. 调整 PHP-FPM 进程数(关键)

编辑:

/etc/php/8.x/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

查看内存:

free -h
php -i | grep memory_limit

✅ 3. 关闭不必要的扩展

php -m

常见可关:

  • xdebug(开发才开,生产必须关)
  • mailparse(不用就关)

✅ 4. 开启 OPcache(非常重要)

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

重启:

systemctl restart php8.x-fpm

✅ 开启后通常 性能提升 2–5 倍


三、Web 服务器优化

Nginx 示例

fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
keepalive_timeout 65;

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

1️⃣ 慢查询日志

SHOW VARIABLES LIKE 'slow_query%';

2️⃣ 加索引

EXPLAIN SELECT * FROM user WHERE email='a@b.com';

3️⃣ 使用 Redis 缓存

  • 页面缓存
  • Session 存 Redis

五、代码层面问题

❌ 常见拖慢原因

  • 循环里查数据库
  • 文件读写频繁
  • file_get_contents() 远程请求
  • 大量 var_dump / 日志

✅ 优化建议

  • 缓存结果
  • 合并 SQL
  • 使用 Composer autoload 优化:
composer dump-autoload -o

六、系统资源问题

1️⃣ 看 CPU / 内存

top
htop

2️⃣ 磁盘 IO

iostat -x 1

3️⃣ Swap 过多

free -h

如果大量使用 swap → 加内存或限制 PHP 进程


七、快速自检清单 ✅

✅ 是否开启 OPcache
✅ 是否关闭 Xdebug
✅ PHP-FPM 进程是否合理
✅ 是否有慢 SQL
✅ 是否用了缓存(Redis / File)
✅ 服务器内存是否不足


八、我可以继续帮你

你可以告诉我:

  1. Ubuntu 版本
  2. PHP 版本
  3. Web 服务器(Nginx / Apache)
  4. 是接口慢还是页面慢
  5. 是否用框架(Laravel / ThinkPHP 等)

我可以直接给你针对性配置文件。

0 踩