在 Debian 上优化 Laravel,可以从系统层、PHP 层、Laravel 层、数据库层、缓存与队列、运维监控几个维度来做。下面给你一套比较实用、可落地的优化方案。
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;
sudo apt install php8.2-fpm php8.2-cli php8.2-mysql \
php8.2-redis php8.2-gd php8.2-mbstring php8.2-xml
/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
/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
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan event:cache
⚠️ 修改代码后记得清缓存:
php artisan config:clear
.env
APP_DEBUG=false
APP_ENV=production
避免同步执行耗时任务:
php artisan queue:work --daemon
可用 Supervisor 管理队列进程。
opcache.enable=1
opcache.memory_consumption=128
opcache.revalidate_freq=60
.env
CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
安装 Redis:
sudo apt install redis-server
innodb_buffer_pool_size = 512M
query_cache_size = 0
max_connections = 200
with() 避免 N+1select() 减少字段安装:
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如果你愿意,可以告诉我:
我可以给你一套针对性更强的优化方案。