温馨提示×

linux下laravel为何运行慢

小樊
36
2026-10-21 18:24:21
栏目: 智能运维

在 Linux 下 Laravel 运行慢 是很常见的问题,通常不是“Laravel 本身慢”,而是环境或配置没优化。下面按最常见原因 → 排查方法 → 解决建议来说明。


一、最常见原因(90% 都在这里)

1️⃣ 没有开启 OPCache(最常见)

Laravel 是 PHP 框架,没有 OPCache 会非常慢。

✅ 检查:

php -m | grep opcache

✅ 如果没有,安装并开启:

sudo apt install php-opcache

编辑 php.ini:

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

重启 PHP:

sudo systemctl restart php-fpm

2️⃣ 使用了 php artisan serve(开发服务器)

artisan serve 只适合本地调试,性能极差。

❌ 不推荐:

php artisan serve

✅ 推荐:

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

3️⃣ 没关闭 debug 模式(生产环境致命)

.env 中:

APP_DEBUG=true

会导致:

  • 大量日志
  • 异常堆栈
  • 性能严重下降

✅ 生产环境:

APP_DEBUG=false
APP_ENV=production

4️⃣ 没有清理 & 缓存配置

每次请求都重新加载配置会非常慢。

✅ 执行:

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

✅ 修改配置后记得重新 cache。


5️⃣ 磁盘 IO 慢(特别在虚拟机 / 云盘)

Laravel 大量读写:

  • storage/
  • bootstrap/cache/
  • 日志文件

✅ 建议:

  • 使用 SSD
  • storage 不要放网络盘
  • 减少日志级别

二、容易被忽视的原因

6️⃣ 每次请求都加载 Composer(autoload 没优化)

composer install --optimize-autoloader --no-dev

7️⃣ 过多中间件 / 全局 Scope

  • 全局中间件
  • 每个请求都查数据库
  • 权限系统过重

✅ 用:

php artisan route:list

检查路由复杂度。


8️⃣ 数据库慢(不是 Laravel 的问题)

  • 没有索引
  • N+1 查询

✅ 检查:

// 错误示例
foreach ($users as $user) {
    $user->posts; // N+1
}

✅ 使用:

User::with('posts')->get();

9️⃣ 使用 Windows 子系统 / Docker 挂载目录

  • WSL1
  • Docker volume mount

都会非常慢。

✅ 解决:

  • WSL2
  • 代码放 Linux 内部
  • 不要挂载整个项目

三、快速自查清单(1 分钟)

php -v
php -m | grep opcache
cat .env | grep APP_DEBUG
ls -lh storage/logs

四、如果你愿意,我可以更精准帮你

你可以补充:

  1. Linux 发行版(Ubuntu / CentOS?)
  2. PHP 版本
  3. Web 服务(Nginx / Apache / artisan serve?)
  4. 是本地还是服务器慢?
  5. 有没有 Docker?

我可以直接给你最优配置方案。

0 踩