Linux如何高效运行Laravel项目
导读:Linux高效运行 Laravel 的实用清单 一 基础运行环境与目录规范 使用 Nginx + PHP-FPM(或 Apache + mod_php),Web 根目录指向 /path/to/laravel/public,通过 try_f...
Linux高效运行 Laravel 的实用清单
一 基础运行环境与目录规范
- 使用 Nginx + PHP-FPM(或 Apache + mod_php),Web 根目录指向 /path/to/laravel/public,通过 try_files $uri $uri/ /index.php?$query_string; 统一入口。
- 安装并启用必要扩展:php-cli php-fpm php-json php-mysql php-zip php-gd php-mbstring php-curl php-xml php-bcmath。
- 使用 Composer 管理依赖:
composer global require laravel/installer,并将 ~/.config/composer/vendor/bin 加入 PATH。 - 示例 Nginx 片段:
server { listen 80; server_name yourdomain.com; root /path/to/laravel/public; index index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.(?!well-known).* { deny all; } } - 注意:生产环境不要使用
php artisan serve,应使用 Nginx/PHP-FPM 或 Laravel Octane 承载。
二 PHP 运行时与进程模型优化
- 启用 OPcache(php.ini 建议值):
opcache.enable=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.revalidate_freq=60 opcache.enable_cli=0 - 使用 PHP-FPM 进程池 合理调参(示例为动态模式):
- 依据内存与并发估算:
pm.max_children ≈ 可用内存 / 单个 PHP 进程平均内存 - 建议起点:
pm.start_servers=4、pm.min_spare_servers=2、pm.max_spare_servers=8 - 重启生效:
systemctl restart php-fpm
- 依据内存与并发估算:
- 选择 较新稳定版 PHP(如 PHP 8.x),并关闭无用扩展以降低开销。
三 Laravel 应用层优化
- 配置与路由缓存(生产环境):
php artisan config:cache php artisan route:cache php artisan view:cache composer dump-autoload --optimize - 缓存驱动与会话:将 CACHE_DRIVER=redis、SESSION_DRIVER=redis,提升会话与缓存吞吐。
- 数据库与 Eloquent:为高频查询字段建立 索引;使用 Eager Loading 预加载关联,避免 N+1;必要时使用 分页 控制单次数据量。
- 队列与异步:将耗时任务放入队列,使用 php artisan queue:work --daemon 或 Laravel Horizon 管理 Redis 队列,提升响应速度与稳定性。
- 前端与传输:使用 Laravel Mix 执行
npm run production进行资源压缩合并;在 Nginx 启用 Gzip/Brotli 压缩;静态资源接入 CDN。
四 系统层面与网络优化
- 适度提升 文件描述符限制(如 systemd 服务设置
LimitNOFILE=65536),避免高并发下“Too many open files”。 - 优化内核网络参数(示例):
net.core.somaxconn = 4096 net.ipv4.tcp_max_syn_backlog = 4096 - 启用 HTTP/2 或 HTTP/3,并开启 TLS 1.2+ 以兼顾安全与性能。
五 部署架构与高并发实践
- 进程常驻与预热:使用 Laravel Octane(基于 Swoole/RoadRunner)显著提升吞吐:
composer require laravel/octane php artisan octane:install php artisan octane:start --workers=4 --task-workers=2 - 进程守护与平滑升级:使用 systemd 管理 php-fpm / queue:work / octane,实现开机自启、自动重启与零停机部署(如先启动新进程再优雅停止旧进程)。
- 监控与观测:开发环境可接入 Laravel Debugbar;生产环境建议使用 Laravel Telescope / New Relic / Datadog 进行性能与错误追踪。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux如何高效运行Laravel项目
本文地址: https://pptw.com/jishu/789334.html
