温馨提示×

如何用linux优化laravel

小樊
37
2026-10-01 07:22:13
栏目: 智能运维

在 Linux 上“优化 Laravel”通常分为 系统层(Linux/Web 服务) 和 应用层(Laravel 本身) 两部分。下面按实战角度给你一份较完整的优化清单。


一、Linux 系统层优化

1. 使用合适的 Web 服务器

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

示例 Nginx 关键配置:

fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
gzip on;
gzip_min_length 1024;

2. PHP-FPM 优化

编辑:

/etc/php/*/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

查看内存后调整 max_children:

free -m

3. OPcache(非常重要)

编辑:

/etc/php/*/cli/conf.d/10-opcache.ini

推荐配置:

opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0
opcache.revalidate_freq=0

生产环境 validate_timestamps=0,部署后重启 PHP-FPM


4. 文件描述符 & 内核参数

ulimit -n 65535

/etc/security/limits.conf:

* soft nofile 65535
* hard nofile 65535

二、Laravel 应用层优化

1. 生产环境配置(必做)

APP_ENV=production
APP_DEBUG=false

2. 路由 & 配置缓存(非常关键)

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

清空:

php artisan config:clear
php artisan route:clear

3. 自动加载优化

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

4. 使用 Redis 作为缓存 & Session

.env:

CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis

安装:

apt install redis-server

5. 队列优化(异步任务)

php artisan queue:work --daemon

使用 systemd 守护:

nano /etc/systemd/system/laravel-queue.service

6. 静态资源优化

npm run build

并配置 Nginx 长缓存:

location ~* \.(js|css|png)$ {
    expires 1y;
}

三、数据库优化(Linux + Laravel)

  • 使用 MySQL / PostgreSQL 调优
  • 添加索引
  • 使用 Laravel 的:
->select(['id','name'])
->with('relation')

开启慢查询日志:

slow_query_log = 1

四、监控 & 排错

1. 查看 PHP-FPM 状态

systemctl status php8.2-fpm

2. Laravel 日志

storage/logs/laravel.log

3. 性能分析

  • Laravel Debugbar(开发)
  • Blackfire / Tideways(生产)

五、最简“上线前优化命令合集”

composer install --no-dev --optimize-autoloader
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan optimize
systemctl restart php8.2-fpm
systemctl restart nginx

如果你愿意,我可以:

  • 按 你的服务器配置(CPU/内存) 给你精确参数
  • 或针对 高并发 / API / 管理后台 场景单独优化
  • 或帮你写 systemd / supervisor 配置

你现在的 Laravel 版本和服务器配置是?

0 踩