neonail-database/WEBSPACE-SETUP.md
2025-08-10 18:09:07 +02:00

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:

  1. .env Datei prüfen
  2. Berechtigungen prüfen
  3. PHP-Version prüfen (8.1+)
  4. Logs prüfen: storage/logs/laravel.log

Problem: "Class not found"

Lösung:

composer dump-autoload

Problem: "Database connection failed"

Lösung:

  1. SQLite-Datei erstellen
  2. Berechtigungen prüfen
  3. 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:

  1. URL aufrufen: https://ihre-domain.de/neonail
  2. Login testen: admin@neonail.com
  3. Neuen Lack erstellen
  4. Bild-Upload testen
  5. Mobile-Ansicht prüfen

Erwartetes Ergebnis:

  • Login-Seite wird angezeigt
  • Keine Verzeichnisliste mehr
  • Laravel-Anwendung läuft
  • Alle Funktionen funktionieren

🆘 Support

Falls nichts funktioniert:

  1. Hosting-Provider kontaktieren
  2. PHP-Version prüfen (8.1+)
  3. mod_rewrite aktiviert?
  4. .htaccess erlaubt?

Viel Erfolg beim Setup! 🎉