laravel5.5框架部署到阿里云虚拟主机.env文件中的配置获取不到问题

原因:laravel在加载.env文件配置中的配置到使用apache_setenv()(设置 Apache 子进程环境变量)和putenv(string $string)(设置环境变量的值,添加$string到服务器环境变量中)函数,阿里云虚拟机不支持这两个函数,所以添加失败导致.env中的配置使用env()(env()中调用getenv()获取一个环境变量的值)函数获取不到,在加载Dotenv\Loader类时(文件路径:vendor/vlucas/phpdotenv/srcLoader.php)

 

 

laravel5.5框架部署到阿里云虚拟主机.env文件中的配置获取不到问题

解决办法:找到env()函数(文件路径:vendor/laravel/framework/src/Illuminate/Support/helpers.php)

laravel5.5框架部署到阿里云虚拟主机.env文件中的配置获取不到问题

修改为

laravel5.5框架部署到阿里云虚拟主机.env文件中的配置获取不到问题

/**

* $_ENV 包含服务器端环境变量的数组

* 使用$_ENV需要在php.ini中配置variables_order = "GPCS" 参数中加上E,

* 如variables_order = "EGPCS"

* EGPCS是 Environment、Get、Post、Cookies、Server的缩写

* 判断$_ENV中的键值是否存在$key 存在返回true 不存在返回false

* */

// 验证$_ENV中是否存在key

$check = array_key_exists($key, $_ENV);

if($check === false){

// 不存在时返回默认值

return value($default);

}

// 存在时获取对应的key值

$value = $_ENV[$key];