繁体   English   中英

读取Laravel 5.1配置文件中的虚拟主机中设置的环境变量

[英]Reading Environment Variables Set In Vhosts In Laravel 5.1 Config Files

使用laravel 5.1。 因此,在我的apache虚拟主机中,我已将环境变量“ ENV_DEV”设置为1。 如果我从香草PHP甚至在控制器中使用print_r($ _ SERVER),我都可以看到变量已设置。

我想将代码插入config / database.php中以检测环境并更改数据库连接,但是由于某些原因,在运行artisan时出现以下错误:

if ($_SERVER['ENV_DEV'] == 1) { ...dbconfig here... }

php artisan migrate

PHP Notice:  Undefined index: ENV_DEV in /www/config/database.php on line 2

我知道在.env中声明它是一个解决方案,但是我的目标是对整个环境范围内的通用设置使用.env并在上游进一步处理数据库配置。

有没有解决的办法?

如果要为控制台指定环境名称,只需使用param --env=your_env运行脚本:

php artisan migrate --env=your_env

如果要为Web请求指定环境,则可以定义Web服务器参数。 Apache示例:

SetEnv LARAVEL_ENV your_env

并修改bootstrap/environment.php

...
if (empty($curEnv))
{
    // Use LARAVEL_ENV if defined
    $curEnv = getenv('LARAVEL_ENV') ?: 'local';
}
...

就像其他人写的那样,来自Apache的环境变量不会自动滴入命令行命令中。 但是,可以从外壳程序中将它们提供给命令。 例如: ENV_DEV=1 php artisan migrate

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM