gpt4 book ai didi

amazon-web-services - AWS Elastic Beanstalk - 在环境属性中设置 .env Laravel

转载 作者:行者123 更新时间:2023-12-04 02:57:19 35 4
gpt4 key购买 nike

据我了解,AWS Elastic Beanstalk 有自己的环境属性,位于软件配置面板中,单击齿轮图标。在我的 Laravel 的 .env 文件中,我有一些信息,比如我上传图像的 S3Bucket、我的邮件服务和其他一些信息。这是否意味着我必须将 Laravel 的 .env 文件中的每个键值对添加到 AWS Elastic Beanstalk 的环境属性中?

最佳答案

简短的回答是

如果您在软件配置中添加环境变量,特别是如果您不将 .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'),

...

请注意,我在这里做了两件事。

  1. 对于 APP_ENV,由于我希望在服务器上使用“生产”,而在本地使用“开发”,因此我想在这里使用 $_SERVER['APP_ENV'],如果可用(即仅在生产服务器上),否则使用我在本地 .env 文件中定义的 APP_ENV。请注意,在 Elastic Beanstalk 上,您也只需将变量命名为 APP_ENV。

  2. 这有点棘手。您在 Elastic Beanstalk 中设置的任何变量都将以字符串形式出现。因此,当然,您会希望在生产中将 APP_DEBUG 设置为 false。然而,这会出现字符串“false”,如果你测试它“false”==true。因此,这将在服务器上证明是正确的。为了解决这个问题,我使用上面的代码来测试 APP_DEBUG 是否设置为“false”,如果是,我将其设置为 bool 值 false

现在,这只是 config/app 文件中的 2 个示例。对于您来说,您必须在各自的配置文件中对 S3 存储桶和邮件服务器执行相同的操作。

我知道我回复得太晚了,但我希望这对其他人有帮助! :)

关于amazon-web-services - AWS Elastic Beanstalk - 在环境属性中设置 .env Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52328925/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com