neonail-database/laravel-test.php
2025-08-10 18:09:07 +02:00

115 lines
3.6 KiB
PHP
Executable File

<?php
// Laravel-Test für NeoNail DB
echo "<h1>Laravel-Test</h1>";
// 1. Composer autoload testen
echo "<h2>1. Composer Autoload:</h2>";
if (file_exists('vendor/autoload.php')) {
require_once 'vendor/autoload.php';
echo "✅ Autoload geladen<br>";
} else {
echo "❌ vendor/autoload.php nicht gefunden<br>";
echo "Führen Sie 'composer install' aus<br>";
exit;
}
// 2. Laravel Bootstrap testen
echo "<h2>2. Laravel Bootstrap:</h2>";
if (file_exists('bootstrap/app.php')) {
try {
$app = require_once 'bootstrap/app.php';
echo "✅ Laravel App geladen<br>";
} catch (Exception $e) {
echo "❌ Laravel Bootstrap Fehler: " . $e->getMessage() . "<br>";
}
} else {
echo "❌ bootstrap/app.php nicht gefunden<br>";
}
// 3. .env laden testen
echo "<h2>3. .env Konfiguration:</h2>";
if (file_exists('.env')) {
$env_content = file_get_contents('.env');
echo "✅ .env Datei gefunden<br>";
// Wichtige Einstellungen prüfen
$checks = [
'APP_ENV' => 'production',
'APP_DEBUG' => 'false',
'DB_CONNECTION' => 'sqlite',
'DB_DATABASE' => 'database.sqlite'
];
foreach ($checks as $key => $expected) {
if (preg_match("/^$key=(.*)$/m", $env_content, $matches)) {
$value = trim($matches[1]);
$status = ($value === $expected) ? "" : "⚠️";
echo "$status $key = $value (erwartet: $expected)<br>";
} else {
echo "$key nicht gefunden<br>";
}
}
} else {
echo "❌ .env Datei nicht gefunden<br>";
}
// 4. SQLite-Verbindung testen
echo "<h2>4. SQLite-Verbindung:</h2>";
if (file_exists('database.sqlite')) {
try {
$pdo = new PDO('sqlite:database.sqlite');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "✅ SQLite-Verbindung erfolgreich<br>";
// Tabellen prüfen
$tables = $pdo->query("SELECT name FROM sqlite_master WHERE type='table'")->fetchAll(PDO::FETCH_COLUMN);
echo "Gefundene Tabellen: " . implode(', ', $tables) . "<br>";
} catch (PDOException $e) {
echo "❌ SQLite-Fehler: " . $e->getMessage() . "<br>";
}
} else {
echo "❌ database.sqlite nicht gefunden<br>";
}
// 5. Storage-Verzeichnis testen
echo "<h2>5. Storage-Verzeichnis:</h2>";
if (is_dir('storage')) {
if (is_writable('storage')) {
echo "✅ storage/ ist schreibbar<br>";
} else {
echo "❌ storage/ ist nicht schreibbar<br>";
}
// Storage-Link prüfen
if (is_link('public/storage')) {
echo "✅ Storage-Link existiert<br>";
} else {
echo "⚠️ Storage-Link fehlt (php artisan storage:link)<br>";
}
} else {
echo "❌ storage/ Verzeichnis nicht gefunden<br>";
}
// 6. Cache-Verzeichnis testen
echo "<h2>6. Cache-Verzeichnis:</h2>";
if (is_dir('bootstrap/cache')) {
if (is_writable('bootstrap/cache')) {
echo "✅ bootstrap/cache/ ist schreibbar<br>";
} else {
echo "❌ bootstrap/cache/ ist nicht schreibbar<br>";
}
} else {
echo "❌ bootstrap/cache/ Verzeichnis nicht gefunden<br>";
}
echo "<hr>";
echo "<h2>Empfohlene Aktionen:</h2>";
echo "1. Falls Composer fehlt: composer install ausführen<br>";
echo "2. Falls .env falsch: env-sqlite-example.txt zu .env kopieren<br>";
echo "3. Falls Berechtigungen falsch: chmod 755 storage/ bootstrap/cache/<br>";
echo "4. Falls SQLite fehlt: touch database.sqlite && chmod 664 database.sqlite<br>";
echo "5. Falls Storage-Link fehlt: php artisan storage:link<br>";
echo "6. Migrationen ausführen: php artisan migrate --force<br>";
?>