我的 laravel 5 应用程序中有几个子域,每个子域都有特定的配置,如 mail、nocaptcha 等。
如何设置 .env 文件以与我的特定子域一起使用?
是的,您可以使用单独的.env
每个子域的文件,因此如果您在配置中使用环境变量,它将无需进行很大的修改即可工作。
Create 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');
after
$app = new Illuminate\Foundation\Application(
realpath(__DIR__.'/../')
);
现在,您可以为每个域创建单独的 env 文件,例如,如果您使用testing.app
, abc.testing.app
and def.testing.app
你可以有.env
主域的文件(以及所有没有自定义环境文件的子域)和.abc.env
and .def.env
您的子域的自定义环境变量的文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)