Sivo 悉见

Laravel根据不同域名调用不同环境的配置文件

匿名 · 更新于 2019/8/12

第一步、复制.env文件,分别设置以下三个不同环境配置文件
.local.env  本地开发环境  设置 APP_ENV=local
.develop.env 线上测试环境 APP_ENV=develop
.production.env 线上生产环境 APP_ENV=production

第二步、修改Laravel项目下的文件bootstrap/app.php,在

$app = new Illuminate\Foundation\Application(
    $_ENV['APP_BASE_PATH'] ?? dirname(__DIR__)
);

后边加入以下代码

//.env配置多环境
$app->loadEnvironmentFrom(call_user_func(function(){
    $my_http_host = strtolower($_SERVER['HTTP_HOST']);
    switch ($my_http_host){
        case 'www.abc.com':
            $myenv = 'production';
            break;
        case 'test.abc.com':
            $myenv = 'develop';
            break;
        default:
            $myenv = 'local';
            break;
    }
    $myenv = '.' . $myenv . '.env';
    return $myenv;
}));

这样就完成了根据不同域名访问不同环境的设置,根据不同环境的配置,可分别设置不同环境对应的配置文件信息,如数据库连接等