Installation von DokuWiki mit Let’s Encrypt SSL unter Debian 11

DokuWiki ist eine kostenlose, quelloffene und leistungsstarke Wiki-Software, die in PHP geschrieben wurde. Sie verwendet eine Datei, um ihre Daten zu speichern, anstatt eine Datenbank zu benutzen. Sie ist einfach und leichtgewichtig und ermöglicht es dir, eine Website über den Webbrowser zu erstellen und zu bearbeiten. Sie bietet viele Funktionen, mit denen du deine Website leicht skalieren und optimieren kannst. Sie wird von vielen Nutzern wegen ihrer sauberen und lesbaren Syntax, der einfachen Wartung, Sicherung und Integration verwendet.

In diesem Tutorium zeige ich dir, wie du DokuWiki mit Apache und Let’s Encrypt SSL auf Debian 11 installierst.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 20.04 läuft.
  • Ein gültiger Domainname, der auf die IP deines Servers zeigt.
  • Ein Root-Passwort ist auf dem Server konfiguriert.

Erste Schritte

Bevor du beginnst, solltest du deine Systempakete auf die neueste Version aktualisieren. Du kannst sie aktualisieren, indem du den folgenden Befehl ausführst:

apt-get update -y

Sobald alle Pakete aktualisiert sind, kannst du mit dem nächsten Schritt fortfahren.

Installiere Apache und PHP

DokuWiki läuft auf Apache oder Nginx und ist in der Programmiersprache PHP geschrieben. Du musst also den Apache, PHP und andere benötigte Erweiterungen auf deinem Server installieren. Du kannst sie installieren, indem du den folgenden Befehl ausführst:

apt-get install apache2 php php-gd php-xml php-json -y

Wenn alle Pakete installiert sind, starte den Apache-Dienst und aktiviere ihn so, dass er beim Neustart des Systems gestartet wird:

systemctl start apache2
systemctl enable apache2

Sobald du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

DokuWiki installieren

Rufe zunächst die DokuWiki-Downloadseite auf und lade die neueste Version von DokuWiki mit dem folgenden Befehl herunter:

wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz

Sobald der Download abgeschlossen ist, erstelle ein Verzeichnis für DokuWiki innerhalb des Apache-Web-Root-Verzeichnisses:

mkdir /var/www/html/dokuwiki

Als Nächstes entpackst du die heruntergeladene Datei mit folgendem Befehl in das DokuWiki-Verzeichnis:

tar -xvzf dokuwiki-stable.tgz -C /var/www/html/dokuwiki/ --strip-components=1

Als Nächstes kopierst du einige notwendige Dateien mit dem folgenden Befehl:

cp /var/www/html/dokuwiki/.htaccess{.dist,}

Als Nächstes musst du die Eigentumsrechte für das DokuWiki-Verzeichnis festlegen:

chown -R www-data:www-data /var/www/html/dokuwiki

Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Einen virtuellen Apache-Host für DokuWiki erstellen

Als Nächstes musst du eine Konfigurationsdatei für einen virtuellen Apache-Host erstellen, um DokuWiki im Internet zu hosten. Du kannst sie mit dem folgenden Befehl erstellen:

nano /etc/apache2/sites-available/dokuwiki.conf

Füge die folgenden Zeilen hinzu:

<VirtualHost *:80>
        ServerName    dokuwiki.example.com      
        DocumentRoot  /var/www/html/dokuwiki

        <Directory ~ "/var/www/html/dokuwiki/(bin/|conf/|data/|inc/)">
            <IfModule mod_authz_core.c>
                AllowOverride All
                Require all denied
            </IfModule>
            <IfModule !mod_authz_core.c>
                Order allow,deny
                Deny from all
            </IfModule>
        </Directory>

        ErrorLog   /var/log/apache2/dokuwiki_error.log
        CustomLog  /var/log/apache2/dokuwiki_access.log combined
</VirtualHost>

Speichere und schließe die Datei und aktiviere die Konfigurationsdatei des virtuellen Hosts mit folgendem Befehl:

a2ensite dokuwiki.conf

Als Nächstes lädst du den Apache neu, damit die Änderungen übernommen werden.

systemctl reload apache2

Du kannst den Apache-Status auch mit dem folgenden Befehl überprüfen:

systemctl status apache2

Du erhältst die folgende Ausgabe:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2021-10-24 04:01:29 UTC; 9min ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 27698 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
      Tasks: 77 (limit: 4691)
     Memory: 12.5M
     CGroup: /system.slice/apache2.service
             ??21346 /usr/sbin/apache2 -k start
             ??27703 Passenger watchdog
             ??27706 Passenger core
             ??27711 Passenger ust-router
             ??27729 /usr/sbin/apache2 -k start
             ??27730 /usr/sbin/apache2 -k start

DokuWiki mit Let’s Encrypt SSL sichern

Nachdem du den Apache konfiguriert hast, solltest du deine Wikiseite mit einem Let’s Encrypt SSL-Zertifikat sichern. Dazu musst du den Certbot-Client auf deinem System installieren. Certbot ist ein einfach zu bedienender Client, der ein Zertifikat von Let’s Encrypt, einer offenen Zertifizierungsstelle, die von der EFF, Mozilla und anderen ins Leben gerufen wurde, abruft und es auf einem Webserver bereitstellt. Mit dem Certbot Let’s Encrypt Client kannst du das SSL-Zertifikat für deine Domain ganz einfach herunterladen, installieren und erneuern.

Du kannst den Certbot mit dem folgenden Befehl installieren:

apt-get install certbot python3-certbot-apache -y

Sobald der Certbot-Client erfolgreich installiert wurde, führe den folgenden Befehl aus, um das Let’s Encrypt SSL-Zertifikat für deine Website zu installieren:

certbot --apache -d dokuwiki.example.com

Du wirst aufgefordert, deine gültige E-Mail-Adresse anzugeben und die Nutzungsbedingungen zu akzeptieren (siehe unten):

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): hitjethva@gmail.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for dokuwiki.example.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/dokuwiki-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/dokuwiki-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/dokuwiki-le-ssl.conf

Als Nächstes wählst du aus, ob der HTTP-Verkehr auf HTTPS umgeleitet werden soll oder ob Nginx so konfiguriert werden soll, dass der gesamte Verkehr auf einen sicheren HTTPS-Zugang umgeleitet wird, wie in der folgenden Ausgabe gezeigt:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Gib 2 ein und drücke die Eingabetaste, um den Vorgang zu starten. Sobald die Installation abgeschlossen ist, solltest du die folgende Ausgabe erhalten:

Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/dokuwiki.conf to ssl vhost in /etc/apache2/sites-available/dokuwiki-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://dokuwiki.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=dokuwiki.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/dokuwiki.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/dokuwiki.example.com/privkey.pem
   Your cert will expire on 2021-01-25. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Zu diesem Zeitpunkt ist deine Dokuwiki-Website mit Let’s Encrypt SSL gesichert. Du kannst jetzt über das HTTPS-Protokoll sicher auf deine Website zugreifen.

Einrichten der automatischen Erneuerung von Let’s Encrypt SSL-Zertifikaten

Let’s Encrypt Zertifikate sind standardmäßig 90 Tage lang gültig. Daher musst du einen Cron-Job einrichten, um das SSL-Zertifikat automatisch zu erneuern. Es ist sicher, einen Cron-Job zu erstellen, der jede Woche oder sogar jeden Tag ausgeführt wird.

Wenn du das SSL-Zertifikat manuell erneuern möchtest, führe den folgenden Befehl aus:

certbot renew --dry-run

Du kannst einen Cron-Job einrichten, der das SSL-Zertifikat jeden Tag um 10:00 Uhr automatisch erneuert, indem du die folgende Datei bearbeitest:

crontab -e

Füge die folgende Zeile hinzu:

00 10 * * *   root /usr/bin/certbot renew >/dev/null 2>&1

Speichere und schließe die Datei, wenn du fertig bist.

Zugriff auf DokuWiki

Öffne nun deinen Webbrowser und gib die URL https://dokuwiki.example.com/install.php ein. Du solltest den Installationsbildschirm von DokuWiki sehen:

DokuWiki Installer

Gib deinen Wiki-Namen, deinen Admin-Benutzernamen, dein Passwort und deine E-Mail-Adresse ein, wähle deine Richtlinie und klicke auf die Schaltfläche Speichern. Du wirst auf die folgende Seite weitergeleitet:

Konfiguration beendet

Klicke auf„Dein neues DokuWiki„. Du solltest den folgenden Bildschirm sehen:

DokuWiki

Klicke auf die Schaltfläche “ Anmelden“. Du wirst zum DokuWiki-Anmeldebildschirm weitergeleitet (siehe unten):

Anmeldung

Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke auf die Schaltfläche Anmelden. Auf dem folgenden Bildschirm solltest du das DokuWiki-Dashboard sehen:

DokuWiki Dashboard

Fazit

Glückwunsch! Du hast DokuWiki erfolgreich installiert und mit Let’s Encrypt SSL auf Debian 11 gesichert. Jetzt kannst du damit beginnen, deine erste Website mit DokuWiki zu erstellen. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …