Laravel无法加载.env的问题

Auth:admin Date:2016-06-4 17:42:00 Cat:技术笔记


在万网虚拟主机上,发现laravel无法加载.env中配置的信息,然后一路跟踪发现,问题出在PHPDotEnv这个库上
在Loader.php里有一个函数如下:

public function setEnvironmentVariable($name, $value = null)
{
    list($name, $value) = $this->normaliseEnvironmentVariable($name, $value);

    // Don't overwrite existing environment variables if we're immutable
    // Ruby's dotenv does this with `ENV[key] ||= value`.
    if ($this->immutable && $this->getEnvironmentVariable($name) !== null) {
        return;
    }

    putenv("$name=$value");

    $_ENV[$name] = $value;
    $_SERVER[$name] = $value;
}

里面使用了putenv函数,把.env里面的配置放到了系统环境变量里面。通过var_dump查看返回值发现都是NULL, 可以猜测万网虚拟主机应该是禁用了putenv这个函数。

解决办法就是放弃使用.env文件,把里面的一些配置信息放到config/app.php里面去。

标签: