温馨提示×

debian如何优化laravel

小樊
49
2026-08-16 23:52:09
栏目: 智能运维

在 Debian 上优化 Laravel,通常从 系统层、PHP 层、Laravel 层、数据库与缓存、Web 服务器 这几个维度来做。下面给你一套比较完整、可落地的优化方案(适用于生产环境)。


一、系统层面优化(Debian)

1. 关闭无用服务

systemctl list-units --type=service --state=running
systemctl disable 不需要的服务

2. 调整文件描述符限制

ulimit -n

编辑:

sudo vim /etc/security/limits.conf

添加:

* soft nofile 65535
* hard nofile 65535

二、PHP 优化(非常重要)

1. 使用 PHP 8.2 / 8.3(推荐)

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

2. PHP-FPM 优化

编辑:

sudo vim /etc/php/8.2/fpm/pool.d/www.conf

推荐配置(4 核 8G 服务器示例):

pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

重载:

sudo systemctl restart php8.2-fpm

3. Opcache 优化(必开)

编辑:

sudo vim /etc/php/8.2/fpm/conf.d/10-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 适合生产环境,代码更新后需重启 PHP-FPM


三、Laravel 层面优化(核心)

1. 开启生产模式

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

⚠️ 注意:

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

2. 关闭调试模式

.env

APP_ENV=production
APP_DEBUG=false

3. 自动加载优化

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

或者:

composer dump-autoload -o

4. 使用队列(非常重要)

php artisan queue:work --daemon

建议用 supervisor 管理队列。


四、缓存 & 会话优化

1. 使用 Redis

安装 Redis:

sudo apt install redis-server

.env

CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis

2. 配置 Redis 优化

sudo vim /etc/redis/redis.conf
maxmemory 256mb
maxmemory-policy allkeys-lru

五、Web 服务器优化(Nginx 推荐)

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

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

2. 开启 Gzip

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

六、数据库优化(MySQL / MariaDB)

1. 常见优化

innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
max_connections = 200

2. Laravel 查询优化

  • 使用索引
  • 避免 select *
  • 使用 with() 解决 N+1 问题
  • 使用分页

七、部署 & 运维建议

1. 使用 supervisor 管理队列

sudo apt install supervisor

示例:

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

2. 定期清理

php artisan cache:clear
php artisan config:clear
php artisan route:clear

八、性能对比(优化前后)

项目 优化前 优化后
请求响应 300ms 50–80ms
并发能力 提升 3–5 倍
CPU 占用 明显下降

九、推荐完整优化清单 ✅

✅ PHP 8.x + Opcache
✅ Laravel config / route / view cache
✅ Redis 缓存 & 队列
✅ Nginx + Gzip
✅ Composer 优化自动加载
✅ supervisor 管理队列


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

  • 服务器配置(CPU / 内存)
  • 使用 Apache 还是 Nginx
  • Laravel 版本
  • 是否高并发 / API 项目

我可以帮你 定制一套最优配置方案

0