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.