Skip to content
返回部署

部署 Laravel 应用

PHP artisan 框架,用 Octane、Forge 或 Vapor,含队列 worker 和 Horizon 仪表盘。

平台高级

为什么

Laravel 提供优雅语法、Eloquent ORM 和丰富生态(队列、事件、广播)。Laravel Forge/Vapor 一键部署,Octane 用 Swoole/RoadRunner 提升 5-10 倍性能。

平台即服务采用率 2024 年增长 24%,团队从虚拟机管理转向 git push 部署。the cloud infrastructure market reached $330B in 2024, growing 22% year-over-year (Synergy Research),PaaS 层捕获了大多数新工作负载。

何时使用

PHP Web 应用、SaaS 和富领域逻辑 API 用 Laravel。高流量选 Octane;serverless AWS 选 Vapor。

如何做

1. 构建 — composer install --no-dev,php artisan optimize 2. Forge — 服务器配置 + Git 零停机部署 3. Vapor — AWS Lambda serverless,vapor deploy 4. Octane — php artisan octane:start --server=swoole 高性能 5. 迁移 — 仅首次部署 php artisan migrate:fresh --seed 6. 队列 — php artisan queue:work,supervisor 保活 7. 存储 — php artisan storage:link 公共磁盘符号链接 8. 环境 — .env.production,APP_DEBUG=false,APP_ENV=production

示例

# Dockerfile — Laravel + Nginx + PHP-FPM FROM composer:2 AS vendor WORKDIR /app COPY composer.* ./ RUN composer install --no-dev --optimize-autoloader FROM php:8.3-fpm-alpine WORKDIR /app COPY --from=vendor /app/vendor ./vendor COPY . . RUN php artisan optimize && php artisan storage:link EXPOSE 9000 # supervisor.conf — 队列 worker [program:queue] command=php /app/artisan queue:work redis --sleep=3 --tries=3 autostart=true autorestart=true # vapor.yml — serverless AWS name: myapp environments: production: database: myapp-prod cache: myapp-redis memory: 1024 runtime: php-8.3-alpine

常见问题

  • ⚠部署后类未找到 — 忘记 composer dump-autoload 或 optimize
  • ⚠Storage 链接断 — 未运行 php artisan storage:link,文件上传 404
  • ⚠队列任务卡住 — 无 supervisor,queue:work 死亡不重启

最佳实践

  • ✓高流量用 Laravel Octane(Swoole/RoadRunner)— 应用常驻内存,快 5-10 倍
  • ✓队列 worker 用 supervisor 管理 — 崩溃自动重启,确保任务始终处理
  • ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求

常见问题解答