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;
    }

    $ret = putenv("$name=$value");

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

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

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

本文为“技术点滴”的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注