在LARAVEL.ENV文件中读取系统变量

在LARAVEL.ENV文件中读取系统变量,laravel,environment-variables,system-variable,Laravel,Environment Variables,System Variable,我有一个AWS服务器,我们在那里设置所有系统环境变量。 用于参考系统环境变量,如数据库连接、电子邮件客户端配置和其他一些配置 我们可以将这些系统变量读入PHP文件以及终端。 但我的要求是将系统变量读入laravel的.env文件中 以下内容可用于PHP,但不能用于.env文件 env('VARIABLE_NAME') getenv('VARIABLE_NAME') $_ENV['VARIABLE_NAME'] 原因是我们正在设置系统范围的环境变量,以避免机密存储在物理

我有一个AWS服务器,我们在那里设置所有系统环境变量。 用于参考系统环境变量,如数据库连接、电子邮件客户端配置和其他一些配置

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

以下内容可用于PHP,但不能用于.env文件

env('VARIABLE_NAME')             
getenv('VARIABLE_NAME')
$_ENV['VARIABLE_NAME']
原因是我们正在设置系统范围的环境变量,以避免机密存储在物理文件中。作为一种解决方案,每次直接更改为模块文件并不是切实可行的解决方案。是否有任何方法可以将系统变量读取/设置到.env文件中

任何人如有任何帮助,将不胜感激。谢谢


我发现在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
中,如果它们是环境变量,那么您应该已经可以在没有
.env
的情况下使用它们,
.env
适用于您没有实际环境变量设置的情况。不建议您这样做,因为基于操作系统和distor,它们的行为不同,您不能依赖它。谢谢您的评论。实际上,系统变量名基于项目名。这意味着“DB_DATABASE”->变量名在不同的项目中是不同的。所以我无法为不同的项目设置相同的数据库变量。与其他变量类似。您可以在
.env
文件中引用其他变量。。。。如果您使用的是Laravel的最新版本,您将在
.env
文件alreadyThanks中看到一个示例,该解决方案正在运行。但您知道如何将变量读入.env文件吗?我找不到将变量读入.env文件的100%有效解决方案。这就是我使用这个解决方案的原因。