wordpress – mit ssl

Änderungsstand: 2020-09-26

26.09.2020: Guideanpassung! Letsencrypt wurde durch Swag ersetzt.

Als Erstes wird Swag und DuckDNS eingerichtet. Wie das funktioniert, seht Ihr hier. Wichtig für diesen Guide ist, dass auf dem Swag-Guide aufgebaut wird. Des Weiteren kann bei Bedarf schon mal im Vorfeld ein Passwortschutz erstellt werden. Hier der Guide dazu. Dann benötigen wir als Vorraussetzung eine Datenbank und phpMyAdmin um die Datenbank einzurichten.

Guide zu mariadb

Guide zu phpmyadmin

Jetzt editiere ich die Docker-Datei von swag und füge unter Subdomain(s) knilipress hinzu. Nur duch Komma getrennt, ohne Leerzeichen! test und test2 stehen da aus dem vorherigen Guide noch drin.

  • Subdomain(s): test,test2,knilipress

Wurde alles soweit erledigt, kann es los gehen. Ich erstelle im Unraid-Terminal eine neue Datei, welche im Unterverzeichnis zu swag-nginx-proxy-conf erstellt wird (eigene Pfadangaben beachten).

nano /mnt/user/appdata/swag/nginx/proxy-confs/wordpress.subdomain.conf

Folgendes füge ich in der leeren Datei ein. Grüne Markierungen sind mit Euren Werten zu ersetzen (knilipress ist meine DuckDNS-Domain und WordPress die WordPress-App (Schreibweise beachten!)):

server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name knilipress.*;

    include /config/nginx/ssl.conf;

    client_max_body_size 0;

    location / {
   ##     auth_basic "Restricted";
   ##     auth_basic_user_file /config/nginx/.htpasswd;

        include /config/nginx/proxy.conf;
        resolver 127.0.0.11 valid=30s;
        set $upstream_app 192.168.252.52;
        set $upstream_port 8089;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;
    }
}

STRG-x, y, Enter

Der Subdomain-Name knilipress muss nicht bei DuckDNS registriert sein! Hierbei handelt es sich um eine untergeordnete Subdomain, die später vor .knilix.duckdns.org angefügt wird (Wildcard-Zertifikat). Des Weiteren musste ich bei „upstrem_app“ die IP-Adresse des Servers angeben, da die Direkte Zuweisung zur APP nicht funktioniert. Keine Ahnung, ob ich da was vergessen habe. Es funktiuoniert auf jeden Fall mit der Angabe der IP-Adresse. Der „upstream_port“ ist der Port des Dockers.

Der Resolver in Zeile 16 kann bei Euch anders sein. Dafür bitte in irgendeiner vorgegebenen *.subdomain.conf.sample im Verzeichnis

/mnt/user/appdata/swag/nginx/proxy-confs/

nachschauen, wie der eigene Wert ist. Hat man den eigenen Wert herausgefunden, ist der bei allen Subdomain.conf-Einträgen identisch. Die 2 Zeilen mit den jeweils 2## davor sind für den separaten Passwortschutz vorgesehen. Wer diesen eingerichtet hat und benutzen möchte, sollte die beiden ## in den 2 Zeilen entfernen.

Swag-Docker neu starten.

Jetzt erstelle ich eine Datenbank mittels phpmyadmin.

in phpMyAdmin einloggen,

Login mit root und das Passwort, welches im MariaDB-Docker und im phpMyAdmin-Docker angegeben wurde. !

Phpmyadmin startet und knallt uns prompt einen kleinen Warnhinweis um die Ohren, wenn es zum ersten Mal gestartet wurde.. Doch das ist normal.

Einfach auf „Finden Sie heraus, warum“ klicken

Und jetzt auf „anlegen“ klicken – Fertig. Es erscheinen ganz viele „OK’s“.

Dann auf Datenbanken (oberes Menufeld) klicken, einen Datenbanknamen im Eingabefeld eintragen (wordpress) und utf8_general_ci und auf „Anlegen“ klicken.

statt nextcloud – wordpress eintragen

Jetzt im linken Menu auf „Neu“ und im oberen Menu auf „Benutzerkonten“ klicken. Nun auf „Neu – Benutzerkonto hinzufügen“

Benutzername und Passwort angeben. Hostname gebe ich mit % an. Authentifizierung ist „Native MYSQL.Authentifizierung“.

Jetzt ganz runter scrollen und auf „OK“ klicken. Alles was mit „Globale Rechte“ zu tun hat, bleibt bitte AUS! Auch Datenbank für Benutzerrechte lassen wir unberührt.

Jetzt legen wir noch für unseren soeben erstellten Benutzer die Datenbankrechte an. Links im Menu auf „Neu“ und oben im Menu auf „Benutzerkonten“. Jetzt an den soeben erstellten Benutzernamen „Rechte ändern“ klicken, oben, in der zweiten Reihe, den Reiter „Datenbank“ wählen, im Auswahlmenu „wordpress“ selektieren und OK. Jetzt bei „Datenbankspezifife Rechte“ – „Alle auswählen“ und OK.

Soeben wurde eine Datenbank für wordpress erstellt, mit einem Benutzer, der NUR Rechte für die Datenbank wordpress besitzt.

Wenn fertig, kann das phpmadmin-Fenster geschlossen werden. Die Datenbank für WordPress wurde erstellt.

Docker für WordPress

Achtung! Die Datenbank muss wordpress genannt werden!

  • „Apps“
  • Im Suchfeld wordpress eingeben
  • WordPress (wordpress) auf Download-Symbol klicken
  • Gewünschte Einstellungen tätigen
    • Network Type: reverseproxy-net (bzw das eigene erstellte Netzwerk)
    • Container Port: 8089
    • WORDPRESS_DB_HOST: 192.168.252.52:3306 (Server-IP:3306)
    • WORDPRESS_DB_USER: Benutzername (wie in der Datenbank erstellt)
    • WORDPRESS_DB_PASSWORT: Passwort des Benutzers (wie in der Datenbank erstellt)
  • „Apply“

Wenn fertig heruntergeladen,

  • „Done“ klicken
  • „Docker“
  • Autostart „ON“

Aufruf im Browser:

knilipress.knilix.duckdns.org

Eine Umleitung zu http s wird erzwungen und WordPress kann nun eingerichtet werden.

Information: Das WordPress unbedingt ins Swag-Verzeichnis installiert werden muss ist ein Mythos. Da wir in der wordpress.subdomain.conf auf den Docker direkt verweisen, darf der auch ganz normal, wie jeder andere Docker auch, seine Verzeichnisstruktur in appdata verwenden. Dabei ist es auch egal, ob der separate Website-Passwortschutz verwendet wird oder nicht.

Jetzt noch ein Check auf SSL Labs (https://www.ssllabs.com/ssltest/)

Passt soweit.

Auf meinen Raspi mit Traefik als Reverse-Proxy und WordPress habe ich ein A+.

Erstelle eine Website wie diese mit WordPress.com
Jetzt starten