4.5 KiB
Executable File
4.5 KiB
Executable File
🌐 Webspace Setup - NeoNail DB
🚨 Problem: Verzeichnisliste wird angezeigt
Wenn Sie eine Verzeichnisliste sehen statt der Laravel-Anwendung, liegt das daran, dass der Webserver nicht auf das public/ Verzeichnis zeigt.
🔧 Lösungen je nach Hosting-Provider
Option A: Shared Hosting (cPanel, Plesk, etc.)
1. Document Root ändern:
- Gehen Sie zu Ihrem Hosting-Panel
- Suchen Sie "Document Root" oder "Web Root"
- Ändern Sie von
/neonail/zu/neonail/public/
2. Oder Unterverzeichnis erstellen:
public_html/
└── neonail/
└── public/ ← Hier alle Laravel-Dateien
Option B: VPS/Dedicated Server
1. Apache Virtual Host:
<VirtualHost *:80>
ServerName ihre-domain.de
DocumentRoot /var/www/neonail/public
<Directory /var/www/neonail/public>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
2. Nginx:
server {
listen 80;
server_name ihre-domain.de;
root /var/www/neonail/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
}
Option C: Automatische Umleitung (Empfohlen)
1. .htaccess im Hauptverzeichnis (bereits erstellt):
RewriteEngine On
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
2. index.php im Hauptverzeichnis (bereits erstellt):
<?php
$publicPath = __DIR__ . '/public';
if (file_exists($publicPath . '/index.php')) {
require_once $publicPath . '/index.php';
}
📋 Schritt-für-Schritt Setup
1. Dateien hochladen
/neonail/
├── .htaccess ← Neue Datei (Umleitung)
├── index.php ← Neue Datei (Umleitung)
├── public/ ← Laravel public Verzeichnis
├── app/ ← Laravel App-Verzeichnis
├── bootstrap/ ← Laravel Bootstrap
├── config/ ← Laravel Konfiguration
├── database/ ← Datenbank-Migrationen
├── resources/ ← Views, Assets
├── routes/ ← Routen
├── storage/ ← Speicher (Schreibrechte!)
└── vendor/ ← Composer Dependencies
2. .env erstellen
# Kopieren Sie env-sqlite-example.txt zu .env
cp env-sqlite-example.txt .env
In .env anpassen:
APP_ENV=production
APP_DEBUG=false
APP_URL=https://ihre-domain.de/neonail
# SQLite (einfachste Option)
DB_CONNECTION=sqlite
DB_DATABASE=/path/to/neonail/database.sqlite
3. Berechtigungen setzen
chmod -R 755 storage/
chmod -R 755 bootstrap/cache/
chmod 644 .env
4. SQLite-Datenbank erstellen
touch database.sqlite
chmod 664 database.sqlite
5. Composer installieren (falls verfügbar)
composer install --optimize-autoloader --no-dev
6. Laravel Setup
php artisan migrate --force
php artisan storage:link
php artisan config:cache
7. Admin-User erstellen
php artisan tinker
use App\Models\User;
User::create([
'name' => 'Admin',
'email' => 'admin@neonail.com',
'password' => bcrypt('ihr_passwort')
]);
🐛 Troubleshooting
Problem: "500 Internal Server Error"
Lösung:
.envDatei prüfen- Berechtigungen prüfen
- PHP-Version prüfen (8.1+)
- Logs prüfen:
storage/logs/laravel.log
Problem: "Class not found"
Lösung:
composer dump-autoload
Problem: "Database connection failed"
Lösung:
- SQLite-Datei erstellen
- Berechtigungen prüfen
- Pfad in .env prüfen
Problem: "Permission denied"
Lösung:
chmod -R 755 storage/
chmod -R 755 bootstrap/cache/
chmod 664 database.sqlite
📱 Testen
Nach dem Setup:
- URL aufrufen:
https://ihre-domain.de/neonail - Login testen:
admin@neonail.com - Neuen Lack erstellen
- Bild-Upload testen
- Mobile-Ansicht prüfen
Erwartetes Ergebnis:
- ✅ Login-Seite wird angezeigt
- ✅ Keine Verzeichnisliste mehr
- ✅ Laravel-Anwendung läuft
- ✅ Alle Funktionen funktionieren
🆘 Support
Falls nichts funktioniert:
- Hosting-Provider kontaktieren
- PHP-Version prüfen (8.1+)
- mod_rewrite aktiviert?
- .htaccess erlaubt?
Viel Erfolg beim Setup! 🎉