Ubuntu下Laravel项目优化实战清单
一 基础环境优化
sudo apt-get install php-opcacheopcache.enable=1opcache.memory_consumption=256opcache.max_accelerated_files=10000opcache.validate_timestamps=0(生产环境建议关闭,代码发布后执行 php-fpm 重载)opcache.revalidate_freq=60sudo apt install php-fpm nginxfastcgi_pass unix:/var/run/php/php8.1-fpm.sock;fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;pm.max_requests=500~1000 防止内存泄漏累积。二 应用层缓存与队列
sudo apt update && sudo apt install redis-serverREDIS_HOST=127.0.0.1,REDIS_PORT=6379,REDIS_PASSWORD=nullcomposer require predis/predisCache::remember('key', 60, fn() => Model::all());Cache::remember('home', 3600, fn() => view('home'));;Blade @cache('home') ... @endcache.env 设置 CACHE_DRIVER=redis,SESSION_DRIVER=redis'driver' => 'redis', 'retry_after' => 90php artisan make:job SendEmail;分发:SendEmail::dispatch($user);php artisan queue:work --daemon(生产建议使用 Supervisor 托管)三 部署与构建优化
.env 设置 APP_ENV=production、APP_DEBUG=falsecomposer install --optimize-autoloader --no-devphp artisan key:generatechmod -R 755 storage bootstrap/cache,chown -R www-data:www-data storage bootstrap/cachephp artisan config:cachephp artisan route:cachephp artisan view:cachecomposer dump-autoload --optimizenpm run production(Laravel Mix)四 数据库与查询优化
with('relation'))。五 高并发与系统层面调优
pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers 与业务内存预算进行压测调优;必要时采用 Laravel Octane(Swoole/RoadRunner)提升吞吐。ulimit -n 655360,并在 /etc/security/limits.conf 设置 * soft/hard nofile 655360net.ipv4.tcp_syncookies=1net.ipv4.tcp_tw_reuse=1net.ipv4.tcp_fin_timeout=30net.ipv4.ip_local_port_range=10240 60999net.ipv4.tcp_keepalive_time=1200net.ipv4.tcp_max_syn_backlog=8192net.ipv4.tcp_max_tw_buckets=5000sysctl -p 使参数生效