温馨提示×

linux laravel如何优化

小樊
49
2026-09-22 10:32:36
栏目: 智能运维

在 Linux 环境下优化 Laravel 应用,通常可以从 服务器环境、PHP、Laravel 配置、数据库、缓存、队列、代码层面 几个方向入手。下面是一份比较系统、可落地的优化清单。


一、Linux & 服务器层面优化

1. 使用合适的 Web 服务器

  • Nginx + PHP-FPM(推荐)
  • 避免 Apache mod_php

2. PHP-FPM 调优

编辑 www.conf:

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

根据内存调整(pm.max_children ≈ 内存 / 单个PHP进程)

3. 开启 OPcache

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

二、Laravel 生产环境优化(最重要)

1. 关闭调试模式

.env

APP_DEBUG=false
APP_ENV=production

2. 配置缓存(必须做)

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

修改配置后必须重新 cache

3. 自动加载优化

composer install --optimize-autoloader --no-dev
composer dump-autoload -o

三、缓存策略优化

1. 使用 Redis 作为缓存

.env

CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis

2. 数据库查询缓存

Cache::remember('users', 600, fn () => User::all());

四、数据库优化

1. 索引优化

  • 常用 where / order by / join 字段加索引
ALTER TABLE users ADD INDEX (email);

2. 避免 N+1 查询

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

3. 使用分页

User::paginate(20);

4. 慢查询日志

slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1

五、队列 & 异步任务

1. 使用队列

dispatch(new SendEmailJob($user));

2. Supervisor 守护队列

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/artisan queue:work --sleep=3 --tries=3
numprocs=4

六、静态资源优化

1. 合并 & 压缩

npm run build

2. Nginx 开启 gzip

gzip on;
gzip_types text/css application/javascript;

七、日志 & 监控

1. 日志级别控制

.env

LOG_LEVEL=error

2. 使用日志轮转

logrotate

3. 监控工具

  • Laravel Telescope(开发)
  • Sentry / Prometheus(生产)

八、常见性能杀手(应避免)

  • APP_DEBUG=true
  • 未使用 route cache
  • 每次请求都查数据库
  • 同步发送邮件 / 短信
  • 大循环里查 DB

九、一键优化命令总结

php artisan optimize
php artisan config:cache
php artisan route:cache
php artisan view:cache
composer dump-autoload -o

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

  • 使用的是 Laravel 几?
  • 服务器配置(CPU / 内存)
  • 是 API / 后台 / 电商 / 高并发场景

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

0 踩