温馨提示×

laravel在debian如何优化

小樊
35
2026-09-08 06:33:23
栏目: 智能运维

在 Debian 上优化 Laravel,可以从系统层、PHP 层、Laravel 层、数据库层、缓存与队列、运维监控几个维度来做。下面给你一套比较实用、可落地的优化方案。


一、系统与服务器层面

1. 使用合适的 Debian 版本

  • 建议使用 Debian 11 / 12
  • 内核较新,对 PHP 8.x、Redis、Nginx 支持更好

2. Web 服务器优化(Nginx 推荐)

Laravel 生产环境推荐 Nginx + PHP-FPM

Nginx 示例优化点:

worker_processes auto;
worker_connections 1024;

keepalive_timeout 30;
client_max_body_size 20m;

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

二、PHP / PHP-FPM 优化

1. 安装 PHP 8.1 / 8.2(推荐)

sudo apt install php8.2-fpm php8.2-cli php8.2-mysql \
php8.2-redis php8.2-gd php8.2-mbstring php8.2-xml

2. PHP 配置优化

/etc/php/8.2/fpm/php.ini

memory_limit = 256M
upload_max_filesize = 20M
post_max_size = 20M
max_execution_time = 60
opcache.enable=1

3. 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

三、Laravel 层面优化(非常重要)

1. 生产环境缓存命令

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

⚠️ 修改代码后记得清缓存:

php artisan config:clear

2. 关闭调试

.env

APP_DEBUG=false
APP_ENV=production

3. 使用队列(Queue)

避免同步执行耗时任务:

php artisan queue:work --daemon

可用 Supervisor 管理队列进程。


四、缓存与性能加速

1. 启用 OPCache

opcache.enable=1
opcache.memory_consumption=128
opcache.revalidate_freq=60

2. 使用 Redis 作为缓存 & Session

.env

CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis

安装 Redis:

sudo apt install redis-server

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

1. 基本优化

innodb_buffer_pool_size = 512M
query_cache_size = 0
max_connections = 200

2. Laravel 查询优化

  • 使用 with() 避免 N+1
  • 使用 select() 减少字段
  • 合理使用索引

六、进程管理(Supervisor)

安装:

sudo apt install supervisor

示例 /etc/supervisor/conf.d/laravel-worker.conf

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/laravel/artisan queue:work
autostart=true
autorestart=true
numprocs=4

七、安全与维护

  • 设置正确权限:
chown -R www-data:www-data storage bootstrap/cache
  • 定期清理:
php artisan cache:clear
php artisan view:clear

八、监控与排错

  • 使用 htop, netstat, php-fpm status
  • 日志:
    • /var/log/nginx/
    • storage/logs/laravel.log

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

  • Laravel 版本
  • Debian 版本
  • 是否高并发 / API / 后台系统

我可以给你一套针对性更强的优化方案

0