Die Vorlage Caddy Webserver bringt alles mit, was eine moderne Webseite braucht: PHP 8.5 mit den Erweiterungen, die Laravel verlangt, Composer, Node.js mit npm, yarn und pnpm.
- Verzeichnis:
/var/www/site— genau hier öffnet auch der Dateimanager - Dienste:
caddyundphp8.5-fpm
Du musst nichts konfigurieren
Der Webserver erkennt bei jeder Anfrage selbst, um was für eine Seite es sich handelt:
- Laravel oder Symfony (also alles mit
public/index.php) wird auspublic/ausgeliefert. Deine.envliegt damit außerhalb des öffentlichen Bereichs und ist nicht über das Netz erreichbar. - Statische Seiten und gebaute React-/Vue-Projekte werden direkt aus
/var/www/siteausgeliefert. - Unterseiten einer Single-Page-App landen automatisch auf
index.html, damit tiefe Links funktionieren.
Du musst also weder eine Konfigurationsdatei anfassen noch ein Zertifikat einrichten.
Weiße Seite nach dem Upload?
Der mit Abstand häufigste Grund: es wurde der Quellcode eines Vite-/React-Projekts hochgeladen statt des fertigen Builds.
Im Quellordner verweist die index.html auf src/main.tsx. Ein Webserver liefert diese Datei als Text aus, und der Browser weigert sich, sie auszuführen — das Ergebnis ist eine leere Seite ohne Fehlermeldung.
Die Lösung ist, den Build hochzuladen, nicht die Konfiguration zu ändern:
npm run build
Danach den Inhalt des erzeugten Ordners (meist dist/) nach /var/www/site laden — nicht den Ordner selbst. Im Zielverzeichnis muss die index.html direkt liegen.
Laravel
Projekt nach /var/www/site laden, dann:
cd /var/www/site
composer install --no-dev --optimize-autoloader
php artisan key:generate
php artisan migrate
chown -R www-data:www-data storage bootstrap/cache
Mehr ist nicht nötig — public/ wird automatisch erkannt.