温馨提示×

debian运行laravel慢是什么原因

小樊
41
2026-10-16 22:20:00
栏目: 智能运维

在 Debian 上运行 Laravel 感觉“慢”,通常不是单一原因,而是环境配置 + Laravel 本身机制 + 系统资源共同作用的结果。下面按常见原因 → 排查/解决办法来说明。


一、PHP 环境相关问题(最常见)

1. PHP 未开启 OPcache

Laravel 是重量级框架,未开启 OPcache 会非常慢。

检查:

php -m | grep opcache

解决(Debian):

sudo apt install php-opcache

编辑 php.ini(如 /etc/php/8.2/cli/php.ini 和 fpm/php.ini):

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

重启:

sudo systemctl restart php8.2-fpm

2. 使用了 CLI 模式误判性能

在终端跑:

php artisan serve

只是开发服务器,性能极差,不能代表真实性能。

✅ 正确方式:

  • Nginx + PHP-FPM
  • Apache + PHP-FPM

3. PHP 版本过低

Laravel 10/11 建议:

  • PHP ≥ 8.1(最好 8.2/8.3)
php -v

二、Laravel 自身配置问题

4. 未开启配置/路由缓存

开发环境常见错误。

php artisan config:cache
php artisan route:cache
php artisan view:cache

⚠️ 注意:

  • 本地开发可关
  • 生产环境必须开

5. 调试工具拖慢(Xdebug / Telescope)

  • Xdebug 会慢 3~10 倍
  • Telescope 每次请求都写 DB

检查:

php -m | grep xdebug

生产环境应:

xdebug.mode=off

6. 开发环境 APP_DEBUG=true

APP_DEBUG=true

会导致:

  • 日志多
  • 错误页面重
  • 视图编译慢

三、数据库与 IO 问题

7. 数据库在远程或很慢

Laravel 默认大量查询:

  • 用户
  • 权限
  • 配置表

排查:

php artisan tinker
DB::enableQueryLog();
// 请求
DB::getQueryLog();

8. Storage / 日志写入慢

  • storage/logs 在机械盘
  • 文件系统为 NFS / 网络盘
df -h
iostat

四、Debian 系统层面问题

9. 磁盘 IO 差(云服务器常见)

iostat -x 1

10. 内存不足导致 swap

free -h
swapon --show

如果有大量 swap 使用,PHP-FPM 会极其慢。


11. 未使用 PHP-FPM 而用 CGI/mod_php

检查:

php -i | grep "Server API"

应为:

FPM/FastCGI

五、快速自检清单(建议按顺序)

php -v
php -m | grep opcache
php -m | grep xdebug
free -h
df -h

Laravel:

php artisan config:cache
php artisan route:cache

六、典型“正常 vs 异常”参考

场景 响应时间
开发机 + debug 200–800ms
生产 + opcache 20–80ms
未开 opcache 1s+
Xdebug 开启 2s+

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

  • Debian 版本
  • PHP 版本
  • Web 服务(Nginx/Apache)
  • 是本地还是服务器
  • 具体慢在哪个环节(首页 / API / 后台)

我可以帮你精准定位。

0 踩