Dokuwiki mit docker hardened php/nginx
Problem mit Nichterreichbarkeit Extensions Server
In einem Docker Hardened Image (z. B. mit docker-compose und einem offiziellen oder selbst gehärteten DokuWiki-Image) sind die Schritte etwas anders, da du die Konfiguration meist über Umgebungsvariablen, Docker-Volumes oder eigene Dockerfiles anpasst. Hier ist eine Schritt-für-Schritt-Anleitung, um das Problem mit dem Plugin-Repository zu lösen:
1. PHP-Einstellungen im Docker-Container anpassen
a) allow_url_fopen und curl aktivieren
Erstelle oder bearbeite eine benutzerdefinierte php.ini und binde sie als Volume in den Container ein.
Beispiel:
Erstelle eine Datei php-override.ini mit folgendem Inhalt:
allow_url_fopen = On
extension=curlFalls du auch open_basedir anpassen musst:
open_basedir = "/var/www/html:/tmp"b) Volume im docker-compose.yml einbinden
Füge in deiner docker-compose.yml unter dem DokuWiki-Service folgende Zeilen hinzu:
services:
dokuwiki:
image: dokuwiki:latest
volumes:
- ./php-override.ini:/usr/local/etc/php/conf.d/override.ini
# ... deine anderen Volumes2. Docker-Container neu starten
Nach dem Anpassen der Konfiguration:
docker-compose down && docker-compose up -d3. Testskript ausführen
Erstelle eine Datei test.php in deinem DokuWiki-Webroot (z. B. ./data/pages/test.txt oder direkt im Container) mit folgendem Inhalt:
<?php
$url = "https://www.dokuwiki.org";
$content = @file_get_contents($url);
if ($content === false) {
echo "Fehler: Kann $url nicht öffnen. Prüfe allow_url_fopen und cURL.";
} else {
echo "Erfolg: Verbindung zu $url möglich.";
}
?>Ruf die Datei im Browser auf, z. B. unter http://dein-dokuwiki/test.php.
4. Logs prüfen
Falls es nicht funktioniert, prüfe die Logs des Containers:
docker-compose logs dokuwikiAchte auf Fehlermeldungen zu allow_url_fopen, cURL oder open_basedir.
5. Falls SELinux aktiv ist
Falls du auf einem Host mit SELinux läufst, kann es den Zugriff blockieren. Teste mit:
sudo setenforce 0Falls das Problem dann verschwindet, musst du SELinux-Policies anpassen oder den Container mit --privileged starten (nicht empfohlen für Produktion).
6. Manuelle Plugin-Installation als Fallback
Falls alles andere nicht hilft, kannst du Plugins manuell herunterladen und über das DokuWiki-Admin-Interface installieren.
Frage:
Hast du eine docker-compose.yml oder ein Dockerfile, das du anpassen kannst? Wenn du mir deine aktuelle Konfiguration zeigst, kann ich dir genau sagen, was du ändern musst!