【问题标题】:In LARAVEL .ENV file read SYSTEM VARIABLE在 LARAVEL .ENV 文件中读取系统变量
【发布时间】:2021-04-22 12:01:37
【问题描述】:

我有 AWS 服务器,我们在其中设置所有系统环境变量。 用于参考系统环境变量,如 DATABASE 连接、EMAIL CLIENT 配置和其他一些配置。

我们可以将这些系统变量读入 PHP 文件以及终端。 但我的要求是将系统变量读入laravel的.env文件

以下工作进入 PHP 但不进入 .env 文件

env('VARIABLE_NAME')             
getenv('VARIABLE_NAME')
$_ENV['VARIABLE_NAME']

这样做的原因是我们正在设置系统范围的环境变量以避免将机密存储在物理文件中。作为一种解决方案每次都直接转换成模块文件是不切实际的解决方案。有什么方法可以读取/设置 SYSTEM VARIABLE INTO .env 文件 ??

任何人都将受到高度赞赏。谢谢

【问题讨论】:

  • 如果它们是环境变量,则不需要将它们放入.env,如果没有.env,它们应该已经可供您使用,.env 适用于您没有设置实际环境变量的情况
  • 不建议这样做,因为基于操作系统和扭曲它们的行为不同,你不能依赖它。
  • 感谢您的 cmets。实际上系统变量名称是基于项目名称的。这意味着“DB_DATABASE”-> 不同项目之间的变量名称不同。所以我无法为不同的项目设置相同的数据库变量。其他变量类似。
  • 您可以在 .env 文件中引用其他变量 .... 如果您使用的是最新版本的 Laravel,您将在 .env 文件中看到一个示例

标签: laravel environment-variables system-variable


【解决方案1】:

我没有发现在 laravel 的 .env 文件中使用或读取变量的工作方式。但是,您可以直接将系统环境变量读取到您的 laravel 框架的配置文件中,如下所示。

将以下和所有其他变量设置到您的 .htacess 文件中并取回它们

hostname
DBname
DBusername
DBpassword
smtp_host
smtp_port
smtp_user
smtp_password
ssl_ca

第 1 步:将这些变量设置到 .htaccess 文件中

第 2 步:在 config/database.php 中使用它们

第 3 步:在 config/mail.php 中使用它们

我在我的 laravel 项目中使用了这种方法,因为我没有找到任何将变量读入 .env 文件的解决方案。有人说以下方法有效,但对我不起作用。

DB_DATABASE ${VARIABLE_NAME}

【讨论】:

  • 感谢这个解决方案它正在工作。但是你知道如何将变量读入 .env 文件吗??
  • 我找不到 100% 的工作解决方案来将变量读入 .env 文件。这就是我使用这个解决方案的原因。
  • 只是 LARA_ENV_VAR=${SYSTEM_ENV_VAR} 在 laravel .env 文件中为我工作
猜你喜欢
  • 2019-01-29
  • 1970-01-01
  • 2020-07-27
  • 2021-08-12
  • 2020-09-24
  • 1970-01-01
  • 2016-03-29
  • 2021-10-11
  • 2018-01-15
相关资源
最近更新 更多