Files
mesreleves-php/public/index.php
T
yann64 5acc6ff5c8 Fix wizard : auto-création du .env minimal quand absent au démarrage
Sans .env, Laravel lève MissingAppKeyException avant que le moindre
middleware ou contrôleur ne s'exécute, rendant /setup inaccessible.

public/index.php génère maintenant un .env depuis .env.example avec
une APP_KEY temporaire (random_bytes 32) et force SESSION_DRIVER=file,
CACHE_STORE=file, QUEUE_CONNECTION=sync pour un boot sans base de données.
Le wizard remplace ce fichier lors de l'installation définitive.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-04 21:41:51 +02:00

40 lines
1.6 KiB
PHP

<?php
use Illuminate\Foundation\Application;
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;
}
// Register the Composer autoloader...
require __DIR__.'/../vendor/autoload.php';
// Bootstrap Laravel and handle the request...
/** @var Application $app */
$app = require_once __DIR__.'/../bootstrap/app.php';
$app->handleRequest(Request::capture());