Quelltext des aktuellen Standes
<?php
/**
* Post-Installation Cleanup
*
* Führt Bereinigungsaufgaben nach der Installation durch:
* - Löscht den Web-Installer
* - Entfernt temporäre Installer-Daten
* - Optimiert die Datenbank
*
* Ausführung: php bin/post-install-cleanup.php
*/
declare(strict_types=1);
// Nur CLI
if (PHP_SAPI !== 'cli') {
die('Dieses Script kann nur über die Kommandozeile ausgeführt werden.');
}
define('BASE_PATH', dirname(__DIR__));
echo "===========================================\n";
echo "IT-Dokumentation - Post-Installation Cleanup\n";
echo "===========================================\n\n";
// 1. Installer löschen
$installerFile = BASE_PATH . '/public/install.php';
if (file_exists($installerFile)) {
if (unlink($installerFile)) {
echo "[OK] install.php wurde gelöscht\n";
} else {
echo "[FEHLER] install.php konnte nicht gelöscht werden\n";
echo " Bitte manuell löschen: $installerFile\n";
}
} else {
echo "[OK] install.php bereits entfernt\n";
}
// 2. Installer-Konfigurationstabelle bereinigen
$envFile = BASE_PATH . '/.env';
if (file_exists($envFile)) {
// .env laden
$env = parse_ini_file($envFile);
if ($env && !empty($env['DB_HOST'])) {
try {
$dsn = sprintf(
'mysql:host=%s;port=%s;dbname=%s;charset=utf8mb4',
$env['DB_HOST'],
$env['DB_PORT'] ?? 3306,
$env['DB_DATABASE']
);
$pdo = new PDO($dsn, $env['DB_USERNAME'], $env['DB_PASSWORD'], [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
]);
// Installer-Tabelle löschen
$pdo->exec('DROP TABLE IF EXISTS _installer_config');
echo "[OK] Installer-Konfigurationstabelle bereinigt\n";
// Datenbank optimieren
$tables = $pdo->query("SHOW TABLES")->fetchAll(PDO::FETCH_COLUMN);
foreach ($tables as $table) {
$pdo->exec("OPTIMIZE TABLE `$table`");
}
echo "[OK] Datenbank-Tabellen optimiert\n";
} catch (PDOException $e) {
echo "[WARNUNG] Datenbank-Bereinigung fehlgeschlagen: " . $e->getMessage() . "\n";
}
}
}
// 3. Cache leeren
$cacheDir = BASE_PATH . '/storage/cache';
if (is_dir($cacheDir)) {
$files = glob($cacheDir . '/*');
$count = 0;
foreach ($files as $file) {
if (is_file($file)) {
unlink($file);
$count++;
}
}
echo "[OK] Cache geleert ($count Dateien)\n";
}
// 4. Temp-Dateien bereinigen
$tempDir = BASE_PATH . '/storage/temp';
if (is_dir($tempDir)) {
$files = glob($tempDir . '/*');
$count = 0;
foreach ($files as $file) {
if (is_file($file) && (time() - filemtime($file)) > 3600) {
unlink($file);
$count++;
}
}
echo "[OK] Temporäre Dateien bereinigt ($count Dateien)\n";
}
echo "\n===========================================\n";
echo "Cleanup abgeschlossen!\n";
echo "===========================================\n";