diff --git a/public/index.php b/public/index.php index ee8f07e..294a636 100644 --- a/public/index.php +++ b/public/index.php @@ -5,6 +5,25 @@ use Illuminate\Http\Request; define('LARAVEL_START', microtime(true)); +// Si aucun .env n'existe, en créer un minimal depuis .env.example pour que +// l'assistant d'installation (/setup) puisse démarrer sans erreur de clé. +// Le wizard remplace ce fichier avec les paramètres définitifs lors de l'installation. +(function () { + $envFile = __DIR__ . '/../.env'; + $example = __DIR__ . '/../.env.example'; + if (! file_exists($envFile) && file_exists($example)) { + $content = file_get_contents($example); + // Génère une clé temporaire pour permettre le boot de Laravel + $content = preg_replace('/^APP_KEY=$/m', + 'APP_KEY=base64:' . base64_encode(random_bytes(32)), $content); + // Pilotes sans dépendance BDD pendant l'installation + $content = preg_replace('/^SESSION_DRIVER=.*/m', 'SESSION_DRIVER=file', $content); + $content = preg_replace('/^CACHE_STORE=.*/m', 'CACHE_STORE=file', $content); + $content = preg_replace('/^QUEUE_CONNECTION=.*/m','QUEUE_CONNECTION=sync',$content); + file_put_contents($envFile, $content); + } +})(); + // Determine if the application is in maintenance mode... if (file_exists($maintenance = __DIR__.'/../storage/framework/maintenance.php')) { require $maintenance;