温馨提示×

如何优化Debian的Laravel

小樊
35
2026-07-17 23:26:17
栏目: 智能运维

在 Debian 上优化 Laravel,一般从 系统层、PHP 层、Laravel 本身、数据库、缓存与部署 几个方面入手。下面给你一套实战向的优化清单,适合生产环境。


一、Debian 系统层面优化

1. 使用最新稳定版软件

sudo apt update && sudo apt upgrade -y

建议使用:

  • Debian 11/12
  • PHP 8.2 / 8.3(Laravel 10/11 推荐)

2. 安装必要组件

sudo apt install -y \
nginx \
php8.2-fpm \
php8.2-mysql \
php8.2-redis \
php8.2-curl \
php8.2-mbstring \
php8.2-xml \
php8.2-zip \
php8.2-bcmath \
php8.2-gd \
unzip \
git \
curl

二、PHP 优化(重点)

1. 优化 php-fpm 配置

编辑:

/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 RAM → pm.max_children = 30
  • 4G RAM → pm.max_children = 60

2. 优化 php.ini

/etc/php/8.2/fpm/php.ini
memory_limit = 256M
upload_max_filesize = 20M
post_max_size = 20M
max_execution_time = 120
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000

重启:

sudo systemctl restart php8.2-fpm

三、Nginx 优化(Laravel 常用)

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 snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

开启 gzip:

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

四、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

⚠️ 注意:

  • route:cache 不支持闭包路由
  • 每次部署后都要重新执行

3. 自动加载优化

composer install --optimize-autoloader --no-dev

五、缓存 & 队列优化

1. 使用 Redis

CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis

安装 Redis:

sudo apt install redis-server
sudo systemctl enable redis

2. 队列优化

php artisan queue:work --daemon

使用 Supervisor(强烈推荐):

sudo apt install supervisor

示例:

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

六、数据库优化

1. MySQL / MariaDB

innodb_buffer_pool_size = 512M
innodb_log_file_size = 128M
max_connections = 150

2. Laravel 查询优化

  • 使用 select() 控制字段
  • 使用 with() 解决 N+1
  • 给常用查询加索引

七、Composer & 部署优化

1. 禁用 xdebug(生产环境)

sudo phpdismod xdebug

2. 使用 Deployer / Git 部署

避免直接用 git pull

  • 使用 php artisan storage:link
  • 使用 php artisan migrate --force

八、监控与调试

推荐工具

  • htop
  • journalctl -u php8.2-fpm
  • Laravel Horizon(Redis 队列)
  • Laravel Telescope(开发环境)

九、最简单的一套“直接可用”优化命令

composer install --optimize-autoloader --no-dev
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan event:cache

十、是否需要我进一步细化?

你可以告诉我:

  1. ✅ 是 云服务器 / 本地 / Docker
  2. ✅ 内存多大(1G / 2G / 4G+)?
  3. ✅ Laravel 版本(8 / 9 / 10 / 11)?
  4. ✅ 是 API 项目还是 Web 项目?

我可以给你 针对你服务器的定制优化方案

0