[英]AWS Elastic Beanstalk - Set .env Laravel in Environment Properties
据我了解,AWS Elastic Beanstalk 在软件配置面板中有自己的环境属性,单击齿轮图标。 在我的 Laravel 的 .env 文件中,我有一些信息,比如我上传图像的 S3Bucket、我的邮件服务和其他一些信息。 这是否意味着我必须将 Laravel 的 .env 文件中的每个键和值对添加到 AWS Elastic Beanstalk 的环境属性中?
简短的回答是Yes 。
如果您在软件配置中添加环境变量,特别是如果您没有将 .env 文件上传到服务器,则必须在代码中引用这些变量。
例如,您可以通过以下方式在服务器上的 Elastic Beanstalk 中引用此配置并在本地使用 .env 文件:
在 config/app.php 中:
<?php
return [
...
'env' => array_key_exists('APP_ENV', $_SERVER) ? $_SERVER['APP_ENV'] : env('APP_ENV'),
'debug' => array_key_exists('APP_DEBUG', $_SERVER) && $_SERVER['APP_DEBUG'] === 'false' ? false : env('APP_DEBUG'),
...
请注意,我在这里做了两件事。
对于 APP_ENV,由于我希望在服务器上使用“生产”但在本地使用“开发”,因此我想在这里,如果可用(即仅在生产服务器上)使用 $_SERVER['APP_ENV'],否则使用我拥有的 APP_ENV在本地的 .env 文件中定义。 请注意,在 Elastic Beanstalk 上,您也只需将变量命名为 APP_ENV。
这有点棘手。 您在 Elastic Beanstalk 中设置的任何变量都将作为字符串出现。 因此,当然,您需要在生产中将 APP_DEBUG 设置为 false。 然而,结果是字符串“false”,如果你测试它“false”==true。 因此,这将在服务器上证明是正确的。 为了解决这个问题,我使用上面的代码来测试它 APP_DEBUG 是否设置为“false”,如果是,我将其设置为布尔值false
现在,这只是 config/app 文件中的 2 个示例。 对您而言,您必须在各自的配置文件中对 S3 存储桶和邮件服务器执行相同操作。
我知道我回复得太晚了,但我希望这对其他人有帮助! :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.