Fix: Fotos-Hochladen auf Mitmachkarten-Produktivserver
Problem
Foto-Upload funktioniert lokal (XAMPP), aber nicht auf dem Linux-Rootserver.
PHP im Docker-Container hat keine Schreibrechte auf den Upload-Ordner.
Fehlermeldung:
Server-Umgebung
- Host:
endex-geodaten.de
- Docker Compose Setup unter
/root/endex-webserver/
- PHP-Container:
webgis-lohne-php (Service: webgis-lohne-php)
- Upload-Ordner auf dem Host:
~/endex-webserver/webgis-lohne/public/uploads/photos/
- Volume-Mount:
./webgis-lohne:/var/www/webgis-lohne
Bugfix
Schritt 1: Per SSH verbinden
Schritt 2: User-ID des PHP-Containers herausfinden
Typische Ausgabe:
Die Zahl hinter uid= merken (wahrscheinlich 33).
Schritt 3: Upload-Ordner dem PHP-User zuweisen
Was das macht: Setzt den Besitzer des Upload-Ordners und aller Dateien darin
auf den User, unter dem PHP im Container läuft. Dadurch kann PHP dort Dateien
erstellen und verschieben.
Prüfen ob es geklappt hat:
Erwartete Ausgabe:
Schritt 4: PHP Upload-Limits herausfinden
Typische Ausgabe:
Falls upload_max_filesize kleiner als 5M ist, muss eine php.ini-Anpassung
im PHP-Docker-Image erfolgen. Dazu in php-docker/Dockerfile oder einer
Custom php.ini folgendes hinzufügen:
Danach Container neu bauen:
Falls die Limits bereits >= 5M sind, ist keine Änderung nötig.
Schritt 5: Upload testen
- Mitmachkarte öffnen: https://lohne.endex-geodaten.de
- Im Beitrags-Formular ein Foto auswählen
- "Beitrag einreichen" klicken
- Erfolgsmeldung sollte erscheinen
Falls der Fehler weiterhin auftritt, Logs prüfen: