¿Cómo hacer para que Laravel se entere del fichero .env que yo deseo cargar?
El nombre del subdominio coincide con el fichero .env, lo cargo con Dotenv y también con la aplicación de Laravel con el método loadEnvironmentFrom.
Luego ejecuto:
php artisan config:cache
Y por último al comprobar $_ENV o getenv(string) puedo ver que está bien cargado, pero... No es así, Laravel sigue apuntando al fichero .env
bootstrap/app.php:
$app = new Illuminate\Foundation\Application(
realpath(__DIR__.'/../')
);
$app->singleton(
Illuminate\Contracts\Http\Kernel::class,
App\Http\Kernel::class
);
$app->singleton(
Illuminate\Contracts\Console\Kernel::class,
App\Console\Kernel::class
);
$app->singleton(
Illuminate\Contracts\Debug\ExceptionHandler::class,
App\Exceptions\Handler::class
);
if (isset($_SERVER['HTTP_HOST'])) {
$hostArray = explode('.', $_SERVER['HTTP_HOST']);
$envFile = sprintf('.%s.env', $hostArray[0]);
$path = __DIR__.'/../';
if (count($hostArray) > 2 && file_exists($path, $envFile)) {
$dotenv = new Dotenv\Dotenv($path, $envFile);
$dotenv->load();
$app->loadEnvironmentFrom($envFile);
}
}
return $app;
.env
digamos.admin.env
ó.portal.env
son distintas y en cada dominio se carga la configuración que corresponde o no se carga la configuración que corresponde.