【发布时间】:2015-04-27 14:02:49
【问题描述】:
我已成功将我的 laravel 5 应用程序部署到 AWS EC2。我还使用 AWS RDS 创建了一个 MySQL 数据库,并将其与我的应用程序实例相关联。
现在我想设置我的 env 变量,以便在我的本地计算机上进行开发时使用 homesteads 默认值,并在部署和生产时使用我的 AWS 数据库。
从这里我对我原来的问题进行了重大修改,以反映我在提出问题后所学到的知识
用于本地开发的 laravel 项目中的经典 .env 大致如下:
APP_ENV=local
APP_DEBUG=true
APP_KEY=BF3nmfzXJ2T6XU8EVkyHtULCtwnakK5k (Note, not a real key)
DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
对于生产,我终于明白我只需使用生产变量创建一个新的 .env 文件。使用 AWS 时,我的 .env 文件大致如下所示:
APP_ENV=production
APP_DEBUG=false
APP_KEY=BF3nmfzXJ2T6XU8EVkyHtULCtwnakK5k (Note, not a real key)
DB_HOST=aaxxxxxxxxxxxxx.cyxxxxxxxxxx.eu-central-1.rds.amazonaws.com:3306
DB_DATABASE=MyAppsDatabaseName
DB_USERNAME=MyAWSRDSUserName
DB_PASSWORD=NotARealPassword
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
我现在的问题/问题
我使用 AWS eb cli 从 git 部署我的应用程序。但是如何部署我的生产 .env 文件而不必先将其推送到 git?
【问题讨论】:
-
您是否将 .env 文件包含在源代码管理中?不要
-
不,我没有 :) 它在 .gitignore 中默认被忽略。但我认为当我执行
eb deploy时它已上传到 aws。否则 laravel 是读不出来的……对吧? -
你解决过这个问题吗?
-
没有在实践中,但我想我找到了方法。 Jeffrey Way 在他的Laracast 5 episode 17 "Midterm Review" 中对此进行了描述。他从 8.31 开始审查 .env,在 9.14 他说:“所以一旦你部署了这个,你就会在你的生产端创建另一个 .env 文件。所以理解这一点很重要。 " 我现在的问题是,如何在不先将文件推送到 git 的情况下将文件部署到 AWS...
-
正是我们正在思考的......
标签: mysql git amazon-web-services environment-variables laravel-5