温馨提示×

debian laravel如何优化性能

小樊
47
2026-09-20 13:52:19
栏目: 智能运维

在 Debian 上部署和优化 Laravel 项目,通常可以从系统层、PHP 层、Laravel 层、数据库层、缓存与队列、前端几个维度来做。下面给你一套比较实用、可落地的优化方案。


一、系统 & 运行环境优化(Debian)

1. 使用最新稳定版软件

  • Debian 12(bookworm)或更新
  • PHP 8.2 / 8.3(Laravel 10/11 推荐)
  • Nginx 或 Caddy(比 Apache 性能更好)
php -v
nginx -v

2. 调整 Linux 文件描述符

ulimit -n 65535

并在 /etc/security/limits.conf 中设置:

* soft nofile 65535
* hard nofile 65535

二、PHP & FPM 优化

1. 安装 PHP 扩展(必须)

apt install php-cli php-fpm php-mysql php-redis php-opcache php-curl php-mbstring php-xml php-zip

2. 启用 OPCache(非常重要)

/etc/php/8.3/fpm/conf.d/10-opcache.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

3. PHP-FPM 进程优化

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

根据内存调整:

free -m

三、Laravel 自身优化(核心)

1. 生产环境配置

APP_ENV=production
APP_DEBUG=false

2. 优化配置和路由(非常重要)

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

修改代码后必须重新 cache

3. 关闭不必要的服务

config/app.php

'providers' => [
    // 注释掉开发用 provider
]

四、缓存 & 队列优化

1. 使用 Redis 作为缓存

.env

CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis

安装 Redis:

apt install redis-server

2. 队列异步处理

php artisan queue:work --daemon

用 systemd 守护:

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

五、数据库优化

1. 使用索引

Schema::table('orders', function ($table) {
    $table->index('user_id');
});

2. 避免 N+1 查询

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

3. 慢查询日志(MySQL)

SET slow_query_log = 1;
SET long_query_time = 1;

六、Web 服务器优化(Nginx 示例)

location ~ \.php$ {
    fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    include fastcgi_params;
    fastcgi_cache_valid 200 1m;
}

启用 gzip:

gzip on;
gzip_types text/css application/javascript;

七、监控 & 性能分析

  • Laravel Telescope(开发)
  • Laravel Pulse(生产)
  • htop, iotop, mysqltuner

八、常见性能瓶颈总结

问题 解决
页面慢 route/config cache
CPU 高 OPCache + FPM 调优
数据库慢 索引 + 队列
并发低 Redis + Nginx

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

  • Laravel 版本
  • Debian 版本
  • 是否用 Docker
  • 访问量级别

我可以给你针对性的配置模板

0