Ich habe bereits schon hier eine Anleitung geschrieben, wie ihr WordPress normal „von Hand“ installieren könnt. Nun zeige ich euch, wie ihr dies in wenigen Minuten mit Docker realisiert. Traefik dient uns hier als Reverse Proxy und stellt später den Dienst verschlüsselt per TLS bereit.
Update
11.08.2022 | Link auf neue Traefik Anleitung, Docker Compose angepasst, verwendet nun MariaDB in neuer Version statt MySQL, Kapitel 5 hinzugefügt |
27.04.2020 | Traefik “secHeader” hinzugefügt. |
13.04.2020 | Server reagiert jetzt auch auf “www.” |
01.04.2020 | Anleitung erstellt. |
Wer Traefik noch nicht installiert hat, findet hier eine Anleitung, wie ihr dies schnell tun könnt.
Als Grundlage meiner Anleitung dient die offizielle WordPress Anleitung für Docker.
Inhaltsverzeichnis
1. Ordner anlegen
Zuerst legen wir uns passende Ordner-Strukturen an.
mkdir -p /opt/containers/wordpress/{database,app}
2. Docker Compose anlegen
Nun legen wir die eigentliche Docker Datei an. Hierfür habe ich mir die offizielle WordPress Compose genommen und diese abgeändert für Traefik.
nano /opt/containers/wordpress/docker-compose.yml
Inhalt
version: '3.1' services: wordpress: image: wordpress restart: unless-stopped container_name: wordpress environment: WORDPRESS_DB_HOST: wordpress-db WORDPRESS_DB_USER: exampleuser ## Hier Benutzer eingeben ## WORDPRESS_DB_PASSWORD: examplepass ## Hier Passwort eingeben ## WORDPRESS_DB_NAME: wordpress volumes: - ./app:/var/www/html labels: - "traefik.enable=true" - "traefik.http.routers.wordpress.entrypoints=https" - "traefik.http.routers.wordpress.rule=Host(`wordpress.euredomain.de`)" - "traefik.http.routers.wordpress.middlewares=default@file" - "traefik.http.routers.wordpress.tls=true" - "traefik.http.routers.wordpress.tls.certresolver=http" - "traefik.http.routers.wordpress.service=wordpress" - "traefik.http.services.wordpress.loadbalancer.server.port=80" - "traefik.docker.network=proxy" networks: - proxy - default wordpress-db: image: mariadb:10.6.4-focal container_name: wordpress-db restart: unless-stopped environment: MYSQL_DATABASE: wordpress MYSQL_USER: exampleuser ## Hier selben Benutzer eingeben ## MYSQL_PASSWORD: examplepass ## Hier selbes Passwort eingeben ## MYSQL_RANDOM_ROOT_PASSWORD: '1' volumes: - ./database:/var/lib/mysql networks: - default networks: proxy: external: true
Notwendige Anpassungen:
- MySQL Passwort ändern
- MySQL User ändern
- eure Domain bei Traefik anpassen („wordpress.euredomain.de“)
Diese Docker Compose Datei funktioniert nur, wenn ich euch mittels meiner Anleitung hier Traefik installiert habt. Sonst heißen einige Traefik Variablen wohl anders. Diese müsst ihr dann dementsprechend bei euch anpassen.
Wenn ihr WordPress auf eurer “Hauptdomain” haben wollt, so gebt ihr folgendes ein:
"traefik.http.routers.wordpress.rule=Host(`www.euredomain.de`,`euredomain.de`)"
3. WordPress starten
WordPress startet ihr wie gewohnt mit folgendem Befehl:
docker compose -f /opt/containers/wordpress/docker-compose.yml up -d
4. WordPress einrichten
Wenn ihr nun auf “wordpress.euredomain.de” geht, dann solltet ihr direkt zur Konfiguration kommen. Hier könnt ihr dann eure Sprache wählen sowie einen Administrator Benutzer erstellen.
5. Absichern mit CrowdSec
Nachdem ihr WordPress installiert habt, könnt ihr dies mit CrowdSec noch zusätzlich absichern. Wie ihr das innerhalb weniger Minuten macht, könnt ihr hier lesen.
6. Quellen
https://hub.docker.com/_/wordpress
Hallo Christian,
Deine Anleitungen sind super, danke dafür. Traefik, Crowdsec und Nextcloud laufen ohne Probleme. Schwierigkeiten habe ich mit WordPress. Das will sich nicht mit der Datenbank verbinden. In Traefik werden keine Fehler angezeigt, die docker compose habe ich schon vielfach durchgeguckt, finde aber auch da keinen Fehler (URL, DB Name und User etc.). Hast Du/ habt Ihr ne Idee, woran es liegen könnte? Vielen Dank schonmal.
Hallo,
vielen Dank für die Tollen Anleitungen. Bisher hat alles einwandfrei geklappt!
bei WordPress bin ich allerdings auf ein Problem gestoßen.
Traefik gibt mit den Fehler, das die middleware default@file nicht geht weil es diese Datei nicht gibt. Bisher habe ich noch keine Lösung gefunden.
Kennst du eine Lösung oder kennt jmd aus der Community eine?
Besten Dank im Voraus
Hallöchen, vielen Dank für deine tolle Anleitung!
Ich hätte ein Frage bzgl. einer Weiterleitungsregel in Traefik.
Ich habe in der docker-compose.yml wie beschrieben sowas: “traefik.http.routers.wordpress.rule=Host(
www.euredomain.de
,euredomain.de
)”.Zusätzlich zur Erreichbarkeit auf http://www.euredomain.de und euredomain.de, füge ich weitere Domains der Liste hinzu z.B. “traefik.http.routers.wordpress.rule=Host(
www.euredomain.de
,euredomain.de
,www.nocheinedomain.de
,nocheinedomain.de
)”.Die Frage: ich möchte, dass immer auf eine bestimmte Domain aus der Liste weitergeleitet wird. Also bspw. rufe ich http://www.nocheinedomain.de im Browser auf und möchte (immer) weitergeleitet werden auf euredomain.de. Ich habe bereits mehrfach etwas von regex-middlewares gelesen, bin aber leider nicht weitergekommen. Hast du hier Erfahrungen oder Ideen zur Lösung?
Ich würd mich sehr freuen! Danke!
Hallo, was muss ich tun damit ich die Anleitung mit Ubuntu 22.04.1 LTS verwenden kann?
Der Zugriff auf die Seite wird verweigert.
Fehlermeldung:
Die unsicheren Passwörten von hier wurden nicht geändert, ich teste nur.
Diese Anleitung habe ich für Traefik genommen: https://goneuland.de/traefik-v2-reverse-proxy-fuer-docker-unter-debian-10-einrichten/
Meine Basissystem ist Ubuntu 22.04.1 LTS.
https://goneuland.de/docker-docker-compose-v2-auf-ubuntu-22-04-lts-installieren/
Liegt es evtl. an meinem Docker Compose V2?
Warum gibt mir Portainer “wordpress mariadb:10.6.4-focal” aus, wofür steht focal?
Traefik, Portainer und Bitwarden konnte von mir erfolgreich installiert werden.
Danke
Thile