Installation auf anderen Servern
Der Ablauf ist derselbe wie bei Plesk: PHP einstellen,
Dokumentstamm auf public/, Datenbank, Dateien, Rechte, Installer, Cronjob. Hier stehen die
Stellen, an denen es sich unterscheidet.
Dokumentstamm
Abschnitt betitelt „Dokumentstamm“Bei jedem Hoster heißt das Feld etwas anders — „Document Root”, „Wurzelverzeichnis”,
„Zielverzeichnis der Domain”. Es muss auf den Unterordner public des Shops zeigen.
Lässt dein Hoster das nicht zu, ist der Webspace für wavux ungeeignet. Den Shop so zu betreiben, dass der Hauptordner öffentlich ist, würde Konfiguration und Zugangsdaten freilegen.
Nichts weiter zu tun: public/.htaccess enthält die Weiterleitung auf den Shop und die Regel, die
Skripte unter /storage/ sperrt. mod_rewrite muss aktiv sein, AllowOverride All für den
Dokumentstamm gelten.
nginx liest keine .htaccess. Zwei Dinge gehören deshalb in die Serverkonfiguration.
1. Uploads dürfen nie ausgeführt werden (Pflicht):
location ^~ /storage/ { location ~ \.(php|php[0-9]|phtml|phps|phar|cgi|pl|py|sh)$ { return 403; } add_header Cache-Control "public, max-age=31536000, immutable";}2. Statische Dateien lange zwischenspeichern (empfohlen — spart bei jedem Seitenaufruf viele Kilobyte):
location ^~ /local-assets/ { expires 1y; add_header Cache-Control "public, max-age=31536000, immutable"; }location ^~ /themes/ { expires 1y; add_header Cache-Control "public, max-age=31536000, immutable"; }location ^~ /build/ { expires 1y; add_header Cache-Control "public, max-age=31536000, immutable"; }Bei Plesk kommen beide Blöcke in Apache & nginx Einstellungen → Zusätzliche nginx-Direktiven.
Wichtig ist ^~: Plesk erzeugt selbst eine Regel für statische Dateien, die eine eigene
Regex-Regel überdecken würde.
Prüfen, ob Regel 1 greift:
printf '<?php echo "AUSFUEHRBAR"; ' > storage/app/public/probe.phpcurl -s https://deine-domain.de/storage/probe.phprm storage/app/public/probe.phpErwartet ist ein 403 — niemals das Wort AUSFUEHRBAR.
Der Shop selbst läuft über den üblichen Laravel-Block:
root /pfad/zum/shop/public;index index.php;location / { try_files $uri $uri/ /index.php?$query_string; }location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; fastcgi_pass unix:/run/php/php-fpm.sock; }Installation per Kommandozeile
Abschnitt betitelt „Installation per Kommandozeile“Wer lieber ohne Browser installiert: Dateien entpacken, .env.example nach .env kopieren,
Datenbankzugang eintragen, dann
php artisan key:generatephp artisan migrate --forcephp artisan storage:linkund anschließend /install im Browser aufrufen, um den Administrator anzulegen. Der Web-Installer
ist der empfohlene Weg — er prüft die Voraussetzungen und stellt die Produktiv-Einstellungen
(APP_ENV=production, APP_DEBUG=false, sichere Sitzungs-Cookies) selbst.
Cronjob
Abschnitt betitelt „Cronjob“* * * * * cd /pfad/zum/shop && php artisan schedule:run >> /dev/null 2>&1Lokal entwickeln
Abschnitt betitelt „Lokal entwickeln“Mit Laravel Herd (Windows/macOS) genügt es, den Shop-Ordner in den
Herd-Ordner zu legen; die Domain name.test zeigt automatisch auf public/. Für Änderungen am
Backend-Aussehen braucht es npm install und npm run build.