Zum Inhalt springen

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.

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:

Terminal-Fenster
printf '<?php echo "AUSFUEHRBAR"; ' > storage/app/public/probe.php
curl -s https://deine-domain.de/storage/probe.php
rm storage/app/public/probe.php

Erwartet 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; }

Wer lieber ohne Browser installiert: Dateien entpacken, .env.example nach .env kopieren, Datenbankzugang eintragen, dann

Terminal-Fenster
php artisan key:generate
php artisan migrate --force
php artisan storage:link

und 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.

* * * * * cd /pfad/zum/shop && php artisan schedule:run >> /dev/null 2>&1

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.