温馨提示×

Debian怎么优化Laravel

小樊
34
2026-07-06 07:18:25
栏目: 智能运维

下面按从系统到应用的顺序,给你一套在 Debian 上优化 Laravel 的实用方案(适用于生产环境,不折腾、可落地)。


一、系统层面(Debian)

1. 使用合适的 PHP 版本

Laravel 对 PHP 版本要求较高,建议:

php -v

例如 Laravel 10+ 建议 PHP 8.2 / 8.3

安装(以 8.2 为例):

sudo apt update
sudo apt install php8.2 php8.2-cli php8.2-fpm \
php8.2-mysql php8.2-curl php8.2-mbstring \
php8.2-xml php8.2-zip php8.2-bcmath php8.2-redis

2. 优化 PHP-FPM(关键)

编辑:

sudo nano /etc/php/8.2/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

根据内存调整:

  • 2G 内存:max_children ≈ 40~60
  • 4G 内存:80~120

重启:

sudo systemctl restart php8.2-fpm

3. 开启 OPCache(非常重要)

编辑:

sudo nano /etc/php/8.2/fpm/conf.d/opcache.ini

推荐配置:

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

validate_timestamps=0 生产环境必开


二、Web 服务器优化

Nginx(推荐)

server {
    listen 80;
    server_name example.com;
    root /var/www/laravel/public;

    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
    }

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

三、Laravel 应用层优化(核心)

1. 生产环境必须执行的命令

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

⚠️ 修改配置后记得重新 cache


2. 关闭调试模式

.env

APP_ENV=production
APP_DEBUG=false

3. 使用 Redis / Memcached

缓存

CACHE_DRIVER=redis

Session

SESSION_DRIVER=redis

Queue

QUEUE_CONNECTION=redis

安装 Redis:

sudo apt install redis-server
sudo systemctl enable redis

四、数据库优化

1. 开启慢查询日志

SET GLOBAL slow_query_log = 1;
SET GLOBAL long_query_time = 1;

2. Laravel 中避免 N+1

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

3. 使用索引

CREATE INDEX idx_user_email ON users(email);

五、队列 & 异步(提升响应速度)

Supervisor 管理队列

sudo apt install supervisor

配置:

[program:laravel-worker]
command=php /var/www/laravel/artisan queue:work redis --sleep=3 --tries=3
autostart=true
autorestart=true
user=www-data
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker

六、日志 & 监控

1. 日志不要写太多

LOG_CHANNEL=stack
LOG_LEVEL=warning

2. 定期清理日志

php artisan log:clear

七、Linux 系统级(进阶)

文件描述符

ulimit -n

建议:

sudo nano /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535

八、推荐生产环境组合(稳定)

✅ Debian 12
✅ PHP 8.2 / 8.3
✅ Nginx
✅ PHP-FPM
✅ Redis
✅ Supervisor
✅ OPCache


九、快速自查清单 ✅

  • [ ] OPCache 已开启
  • [ ] config/route/view 已 cache
  • [ ] 使用 Redis
  • [ ] 队列异步
  • [ ] 关闭 debug
  • [ ] Nginx gzip 开启

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

  • Laravel 版本
  • Debian 版本
  • 服务器配置(CPU / 内存)
  • 是否高并发

我可以给你定制一套参数,直接可用。

0