Laravel 不同环境加载不同的.env文件


假设有4个.env文件。分别为

.env.local
.env.dev
.env.test
.env.prd
方式一

第一步:bootstrap\app.php 加入代码

$envs = ['local','dev','test','prd'];
$env = get_cfg_var('env');
if(empty($env) || !in_array($env, $envs)){
    exit('no env files');
}
$env = '.env.'.$env;
$app->loadEnvironmentFrom($env);

第二步:php.ini文件中添加一行

env = local
方式二

假设不同环境域名分别为:
local-domain.com
dev-domain.com
test-domain.com
domain.com

bootstrap\app.php 加入代码

if (!$app->runningInConsole()) {//HTTP形式
    if (empty($_SERVER['HTTP_HOST'])) {
        die('[error] no host');
    }
    $app_env = substr($_SERVER['HTTP_HOST'],0,strpos($_SERVER['HTTP_HOST'],'-'));
} else {//其它形式
    $app_env = $app->detectEnvironment(function () {
        return 'prd';
    });
}
if (empty($app_env)) {
    die('[error] no environment');
}
//写入环境配置
//Dotenv::setEnvironmentVariable('APP_ENV', $app_env);
$app->loadEnvironmentFrom('.env.' . $app_env);
//    ->useEnvironmentPath(base_path('env'));


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM