温馨提示×

linux laravel怎么优化性能

小樊
46
2026-10-15 22:11:21
栏目: 智能运维

在 Linux 上优化 Laravel 性能,通常从 PHP 层面、Laravel 层面、服务器/系统层面、数据库层面 入手。下面是一套比较实用、生产环境常见的优化方案。


一、Laravel 自身优化(最基础、收益最大)

1. 开启生产环境优化命令

# 缓存配置
php artisan config:cache

# 路由缓存
php artisan route:cache

# 视图缓存
php artisan view:cache

# 事件缓存(Laravel 8+)
php artisan event:cache

⚠️ 注意:

  • 改了 .env、config、routes 后必须重新 cache
  • 本地开发不要 cache

2. 关闭调试模式

.env

APP_DEBUG=false
APP_ENV=production

3. 使用 OPcache(非常重要)

Laravel 是 PHP 框架,OPcache 能显著提升性能。

安装(PHP 8.x 示例)

sudo apt install php-opcache

推荐 php.ini 配置

opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.validate_timestamps=0

生产环境 validate_timestamps=0,改代码后重启 PHP


二、PHP & Web 服务器优化

4. 使用 PHP-FPM + Nginx

推荐组合:

  • Nginx
  • PHP-FPM
  • OPcache

PHP-FPM 优化示例

pm = dynamic
pm.max_children = 100
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 30

根据内存调整:

  • 1 个 PHP 进程 ≈ 30~80MB

5. 开启 Nginx 缓存 & Gzip

gzip on;
gzip_types text/css application/javascript application/json;

静态资源走 Nginx,不走 PHP。


三、数据库优化(Laravel 常见瓶颈)

6. 使用索引

Schema::table('users', function (Blueprint $table) {
    $table->index('email');
});

7. 避免 N+1 查询

❌ 错误

$users = User::all();
foreach ($users as $user) {
    $user->posts;
}

✅ 正确

$users = User::with('posts')->get();

可以用:

php artisan Telescope  # 或 debugbar 观察 SQL

8. 使用 Redis 做缓存 & 队列

.env

CACHE_DRIVER=redis
QUEUE_CONNECTION=redis
SESSION_DRIVER=redis

安装 Redis:

sudo apt install redis-server

四、队列 & 异步任务(非常重要)

9. 耗时操作放队列

  • 发邮件
  • 图片处理
  • 推送通知
php artisan queue:work --daemon

建议用:

  • supervisor 守护进程

五、Laravel 高级优化

10. 使用 Laravel Octane(高并发)

基于 Swoole / RoadRunner

composer require laravel/octane
php artisan octane:install
php artisan octane:start

⚠️ 需要代码无全局状态问题


11. 使用 API 缓存

Cache::remember('users', 60, function () {
    return User::all();
});

六、Linux 系统层面

12. 文件描述符 & 内核优化

ulimit -n 65535

Nginx / PHP-FPM Worker 数合理配置


13. 使用 CDN

  • 静态资源(js/css/img)
  • 减少服务器压力

七、推荐生产环境组合(总结)

✅ 最佳实践:

  • Linux + Nginx + PHP-FPM
  • OPcache
  • Redis(cache / queue / session)
  • Laravel config/route/view cache
  • 数据库索引 + 避免 N+1
  • 队列处理耗时任务
  • 高并发可用 Octane

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

  • Laravel 版本
  • 访问量 / QPS
  • 当前服务器配置(CPU / 内存)
  • 是 API 还是 Web 页面

我可以给你一套 针对性的优化方案。

0 踩