5acc6ff5c8
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>
40 lines
1.6 KiB
PHP
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());
|