0

0

Laravel部署到AWS怎么操作_LaravelAWS部署的操作技巧【技巧】

星夢妙者

星夢妙者

发布时间:2026-03-18 08:30:37

|

302人浏览过

|

来源于php中文网

原创

Vapor部署最省心但需配好CLI和IAM权限,最小策略为AdministratorAccess-AWSElasticBeanstalk与AWSServiceRoleForElasticBeanstalk;EC2部署需处理软链接权限或改用绝对路径;S3 doesObjectExist失败多因Key未URL编码;严禁在.env中硬写AWS密钥,应使用IAM实例角色。

laravel部署到aws怎么操作_laravelaws部署的操作技巧【技巧】

用 Vapor 部署最省心,但得先配好 CLI 和 IAM 权限

如果你的 Laravel 应用不依赖本地扩展(如 Imagick、SOAP)、不需要长期运行的守护进程(比如自定义 socket 服务),Vapor 是目前 AWS 上最顺滑的部署路径。它自动处理 Lambda、API Gateway、S3、CloudFront,连队列和缓存都托管了。

常见错误现象:AWS provider not authorized to perform iam:CreateRolevapor deploy production fails with "AccessDenied"——不是密钥没填对,而是你给 CLI 用的 IAM 用户缺权限。

  • 必须授予的最小策略:AdministratorAccess-AWSElasticBeanstalk + AWSServiceRoleForElasticBeanstalk(Vapor 内部仍依赖 EB 的底层能力)
  • aws configure 用的不是 root 账号,也不是 EC2 实例角色,而是独立 IAM 用户的 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
  • Vapor CLI 安装后记得加到 PATH:export PATH="$PATH:$HOME/.composer/vendor/bin",否则 vapor login 会报 command not found

手动部署到 EC2 时,php artisan storage:link 通常失效

因为 Laravel 默认用 public/storage 指向 storage/app/public,但在 EC2 上 nginx 的 root 往往设为 /var/www/html/project/public,而部署脚本(如 Forge 或自写 deploy.sh)常把整个项目目录 rsync 过去,导致软链接断开或权限被重置。

使用场景:你坚持用传统服务器模型,要跑 Horizon、WebSockets、自定义 cron,或者有文件上传回调逻辑强依赖本地磁盘路径。

  • 别在本地生成软链接再上传——EC2 上 storage 目录属主是 ec2-user,但 nginx 进程跑在 apachewww-data 下,权限不一致
  • 改用 ln -sf /var/www/html/project/storage/app/public /var/www/html/project/public/storage,并在部署后 chown -R www-data:www-data /var/www/html/project/storage
  • 更稳妥的做法:在 config/filesystems.php 中把 public 磁盘的 root 改成绝对路径,绕过软链接:'root' => '/var/www/html/project/storage/app/public'

doesObjectExist() 返回 false 不代表文件真不存在

这是 S3 SDK 常见的“幽灵失败”:明明控制台里文件清清楚楚,$s3->doesObjectExist($bucket, 'path/file.jpg') 却返回 false。根本原因不是网络或鉴权,而是 Key 名称里的空格、中文、特殊字符没做 URL 编码。

参数差异:S3 控制台显示的 “文件名” 是解码后的友好视图,但 SDK 的 Key 字段必须是原始编码字节串。比如 temp/测试.png 在 SDK 里得传 temp/%E6%B5%8B%E8%AF%95.png

  • 上传时用 rawurlencode() 处理 Key:'Key' => 'temp/' . rawurlencode($filename)
  • 查询前也必须同样编码,否则 doesObjectExistgetObject 都会静默失败
  • 注意:Laravel 的 Storage::disk('s3')->exists() 内部已自动处理编码,但直接调 SDK 客户端就得自己来

别在 .env 里硬写 AWS_SECRET_ACCESS_KEY

哪怕你只在 EC2 上部署,也别把密钥塞进 .env 文件。AWS 推荐且 Vapor/EB 默认采用的方式是:让实例角色(IAM Role)接管权限,代码里完全不碰密钥字符串。

性能 / 兼容性影响:硬编码密钥会导致部署包体积膨胀、Git 历史泄露风险、无法动态轮换;而实例角色由 AWS STS 自动刷新临时凭证,aws-sdk-php 会优先读取 http://169.254.169.254/latest/meta-data/iam/security-credentials/,比读文件还快。

  • EC2 启动时绑定一个带 s3:GetObjects3:PutObject 权限的 IAM Role
  • .env 中删掉 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY,只留 AWS_BUCKETAWS_DEFAULT_REGION
  • 验证是否生效:在服务器上运行 aws s3 ls s3://your-bucket-name,能列出内容就说明角色权限通了

真正麻烦的从来不是“怎么部署”,而是部署后某天凌晨三点发现 S3 图片批量 403——十有八九是密钥轮换没同步,或者忘了删掉测试环境里那行 AWS_SECRET_ACCESS_KEY=xxx

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
laravel组件介绍
laravel组件介绍

laravel 提供了丰富的组件,包括身份验证、模板引擎、缓存、命令行工具、数据库交互、对象关系映射器、事件处理、文件操作、电子邮件发送、队列管理和数据验证。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

341

2024.04.09

laravel中间件介绍
laravel中间件介绍

laravel 中间件分为五种类型:全局、路由、组、终止和自定。想了解更多laravel中间件的相关内容,可以阅读本专题下面的文章。

296

2024.04.09

laravel使用的设计模式有哪些
laravel使用的设计模式有哪些

laravel使用的设计模式有:1、单例模式;2、工厂方法模式;3、建造者模式;4、适配器模式;5、装饰器模式;6、策略模式;7、观察者模式。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

795

2024.04.09

thinkphp和laravel哪个简单
thinkphp和laravel哪个简单

对于初学者来说,laravel 的入门门槛较低,更易上手,原因包括:1. 更简单的安装和配置;2. 丰富的文档和社区支持;3. 简洁易懂的语法和 api;4. 平缓的学习曲线。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

387

2024.04.10

laravel入门教程
laravel入门教程

本专题整合了laravel入门教程,想了解更多详细内容,请阅读专题下面的文章。

146

2025.08.05

laravel实战教程
laravel实战教程

本专题整合了laravel实战教程,阅读专题下面的文章了解更多详细内容。

86

2025.08.05

laravel面试题
laravel面试题

本专题整合了laravel面试题相关内容,阅读专题下面的文章了解更多详细内容。

84

2025.08.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

820

2026.03.04

抖漫入口地址合集
抖漫入口地址合集

本专题整合了抖漫入口地址相关合集,阅读专题下面的文章了解更多详细地址。

17

2026.03.17

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Laravel---API接口
Laravel---API接口

共7课时 | 0.7万人学习

PHP自制框架
PHP自制框架

共8课时 | 0.6万人学习

PHP面向对象基础课程(更新中)
PHP面向对象基础课程(更新中)

共12课时 | 0.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号