gpt4 book ai didi

Laravel 5 Dotenv 用于特定子域

转载 作者:行者123 更新时间:2023-12-02 15:25:38 24 4
gpt4 key购买 nike

我的 laravel 5 应用程序中有几个子域,每个子域都有特定的配置,例如 mail、nocaptcha 等。

如何设置 .env 文件以使用我的特定子域?

最佳答案

是的,您可以为每个子域使用单独的 .env 文件,因此如果您在配置中使用 env 变量,则无需进行太大修改即可工作。

创建包含以下内容的 bootstrap/env.php 文件:

<?php
$app->detectEnvironment(function () use ($app) {
if (!isset($_SERVER['HTTP_HOST'])) {
Dotenv::load($app['path.base'], $app->environmentFile());
}

$pos = mb_strpos($_SERVER['HTTP_HOST'], '.');
$prefix = '';
if ($pos) {
$prefix = mb_substr($_SERVER['HTTP_HOST'], 0, $pos);
}
$file = '.' . $prefix . '.env';

if (!file_exists($app['path.base'] . '/' . $file)) {
$file = '.env';
}

Dotenv::load($app['path.base'], $file);
});

现在修改 bootstrap/app.php 以加载自定义 env.php 文件。只需添加:

require('env.php');

之后

$app = new Illuminate\Foundation\Application(
realpath(__DIR__.'/../')
);

现在,您可以为每个域创建单独的环境文件,例如,如果您使用 testing.appabc.testing.appdef.testing.app 您可以为主域(以及所有没有自定义 env 文件的子域)以及 .abc.env 创建 .env 文件.def.env 文件用于子域的自定义环境变量。

关于Laravel 5 Dotenv 用于特定子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29880331/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com