Wie man DokuWiki mit Nginx und Let’s Encrypt SSL auf Alma Linux installiert

DokuWiki ist eine webbasierte Open-Source-Wiki-Software, die hauptsächlich für Linux-Systeme entwickelt wurde. Sie ermöglicht kollaborative Dokumentation und Wissensmanagement, indem sie es den Nutzern ermöglicht, Inhalte über eine einfache und intuitive Weboberfläche zu erstellen und zu bearbeiten. DokuWiki zeichnet sich durch sein geringes Gewicht und seine einfache Installation aus, da es keine Datenbank benötigt und sich somit gut für kleinere Organisationen oder Projekte eignet. Seine robusten Textformatierungsfunktionen, die Versionskontrolle und das umfangreiche Plugin-Ökosystem machen es zu einem vielseitigen Werkzeug für die Erstellung und Pflege von Dokumentationen, Wissensdatenbanken und Websites in einer Linux-Umgebung.

Diese Anleitung zeigt dir, wie du DokuWiki mit Nginx auf Alma Linux installierst.

Voraussetzungen

  • Ein Server, auf dem Alma Linux 8 läuft.
  • Ein gültiger Domainname, der auf die IP deines Servers zeigt.
  • Ein Root-Passwort ist auf dem Server eingerichtet.

Nginx und PHP installieren

Standardmäßig ist die neueste Version von PHP nicht im Standard-Repository von Alma Linux 8 enthalten. Daher musst du das EPEL- und das Remi-Repository auf deinem System installieren.

Du kannst beides installieren, indem du den folgenden Befehl ausführst:

dnf install epel-release -y
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y

Sobald beide Pakete installiert sind, aktivierst du das PHP Remi Repository mit dem folgenden Befehl:

dnf module enable php:remi-7.4 -y

Du solltest die folgende Ausgabe sehen:

Dependencies resolved.
==============================================================================================================================================
 Package                           Architecture                     Version                           Repository                         Size
==============================================================================================================================================
Enabling module streams:
 php                                                                remi-7.4                                                                 

Transaction Summary
==============================================================================================================================================

Complete!

Als Nächstes installierst du den Nginx Webserver, PHP und andere benötigte Erweiterungen mit folgendem Befehl:

dnf install nginx php php-cli php-fpm php-gd php-xml php-zip -y

Sobald alle Pakete installiert sind, bearbeite die PHP-FPM-Konfigurationsdatei und ändere den Listen, den Benutzer und die Gruppe:

nano /etc/php-fpm.d/www.conf

Ändere die folgenden Zeilen:

user = nginx
group = nginx

Speichere und schließe die Datei und starte und aktiviere den Nginx- und PHP-FPM-Dienst mit dem folgenden Befehl:

systemctl start nginx php-fpm
systemctl enable nginx php-fpm

Du kannst die PHP-Version auch mit dem folgenden Befehl überprüfen:

php --version

Du erhältst die folgende Ausgabe:

PHP 7.4.28 (cli) (built: Feb 15 2022 13:23:10) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.28, Copyright (c), by Zend Technologies

DokuWiki auf Alma Linux 8 installieren

Als nächstes musst du die neueste Version von DokuWiki von der offiziellen Website herunterladen. Du kannst sie mit dem folgenden Befehl herunterladen:

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

Sobald der Download abgeschlossen ist, erstelle ein Verzeichnis für DokuWiki im Nginx-Web-Root:

mkdir /var/www/html/dokuwiki

Als Nächstes entpackst du die heruntergeladene Datei mit dem folgenden Befehl:

tar xvf dokuwiki-stable.tgz

Verschiebe das extrahierte Verzeichnis in das DokuWiki-Verzeichnis:

mv dokuwiki-2020-07-29/* /var/www/html/dokuwiki/

Als Nächstes änderst du den Eigentümer des DokuWiki-Verzeichnisses auf Nginx:

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

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

Einen virtuellen Nginx-Host für DokuWiki erstellen

Als Nächstes erstellst du mit dem folgenden Befehl eine Nginx-Konfigurationsdatei für DokuWiki:

nano /etc/nginx/conf.d/dokuwiki.conf

Füge die folgenden Zeilen ein:

server {
    listen 80;
    server_name wiki.example.com;
    root /var/www/html/dokuwiki;
    index index.html index.htm index.php doku.php;
    
    client_max_body_size 15M;
    client_body_buffer_size 128K;
    
    location / {
        try_files $uri $uri/ @dokuwiki;
    }
    
    location ^~ /conf/ { return 403; }
    location ^~ /data/ { return 403; }
    location ~ /\.ht { deny all; }
    
    location @dokuwiki {
        rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last;
        rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last;
        rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last;
        rewrite ^/(.*) /doku.php?id=$1 last;
    }
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Speichere und schließe die Datei und überprüfe Nginx mit folgendem Befehl auf Syntaxfehler:

nginx -t

Du erhältst die folgende Ausgabe:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Starte abschließend den Nginx-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart nginx

Du kannst den Status von Nginx auch mit dem folgenden Befehl überprüfen:

systemctl status nginx

Du erhältst die folgende Ausgabe:

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/nginx.service.d
           ??php-fpm.conf
   Active: active (running) since Sat 2022-03-26 04:26:32 UTC; 4s ago
  Process: 5020 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 5018 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 5017 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 5022 (nginx)
    Tasks: 2 (limit: 11412)
   Memory: 3.8M
   CGroup: /system.slice/nginx.service
           ??5022 nginx: master process /usr/sbin/nginx
           ??5023 nginx: worker process

Mar 26 04:26:32 linux systemd[1]: nginx.service: Succeeded.
Mar 26 04:26:32 linux systemd[1]: Stopped The nginx HTTP and reverse proxy server.
Mar 26 04:26:32 linux systemd[1]: Starting The nginx HTTP and reverse proxy server...
Mar 26 04:26:32 linux nginx[5018]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Mar 26 04:26:32 linux nginx[5018]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Mar 26 04:26:32 linux systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Mar 26 04:26:32 linux systemd[1]: Started The nginx HTTP and reverse proxy server.

Zugriff auf das DokuWiki-Webinterface

Öffne nun deinen Webbrowser und rufe den DokuWiki-Webinstallationsassistenten über die URL http://wiki.example.com/install.php auf . Du erhältst die folgende Seite:

Gib alle erforderlichen Informationen wie Superuser-Name, E-Mail und Passwort ein. Klicke dann auf die Schaltfläche Speichern. Wenn die Installation erfolgreich abgeschlossen ist, solltest du die folgende Seite sehen:

Klicke jetzt auf dein neues DokuWiki. Du solltest die folgende Seite sehen:

Klicke jetzt auf die Schaltfläche Anmelden. Du wirst auf die folgende Seite weitergeleitet:

Gib deinen Admin-Benutzernamen und dein Passwort ein. Klicke dann auf die Schaltfläche Anmelden. Auf der folgenden Seite solltest du das DokuWiki-Dashboard sehen:

Nach erfolgreicher Konfiguration löschst du die Datei install.php aus dem DokuWiki-Stammverzeichnis:

rm -rf /var/www/html/dokuwiki/install.php

DokuWiki mit Let’s Encrypt sichern

Es ist eine gute Idee, die Wiki-Website mit Let’s Encrypt zu sichern. Dazu musst du das Paket Certbot auf deinem Server installieren. Du kannst es installieren, indem du den folgenden Befehl ausführst:

dnf install epel-release -y
dnf install certbot -y

Als Nächstes führst du den folgenden Befehl aus, um Let’s Encrypt SSL auf deiner Website zu installieren:

certbot --nginx -d wiki.example.com

Du wirst aufgefordert, deine E-Mail-Adresse anzugeben und die Nutzungsbedingungen zu akzeptieren:

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. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, 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
Account registered.
Requesting a certificate for wiki.example.com
Performing the following challenges:
http-01 challenge for wiki.example.com
Waiting for verification.
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/dokuwiki.conf
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/dokuwiki.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://wiki.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Subscribe to the EFF mailing list (email: hitjethva@gmail.com).


IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/wiki.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/wiki.example.com/privkey.pem
   Your certificate will expire on 2022-04-09. 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

Jetzt kannst du deine Website sicher über die URL https://wiki.example.com aufrufen .

Fazit

Herzlichen Glückwunsch! Du hast DokuWiki erfolgreich auf dem Alma Linux 8 Server installiert und konfiguriert. Jetzt kannst du mit DokuWiki ganz einfach deine eigene Wiki-Seite erstellen. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …