Wie man DokuWiki mit Apache unter Debian 9 installiert

Dieses Tutorial zeigt Ihnen, wie Sie die neueste Version der DokuWiki CMS-Plattform unter Debian 9.2 installieren und konfigurieren, um Online-Dokumentations-Websites zu erstellen.

DokuWiki ist eine kostenlose Open-Source-Wiki-Anwendung, die vollständig in der Programmiersprache PHP geschrieben und oft unter Linux unter Apache/Nginx Webserver und PHP eingesetzt wird.

Die DokuWiki-Softwareplattform erfordert keine RDBMS-SQL-Datenbank. Im Gegenzug verwendet es einfache Klartextdateien als Backend, um alle Daten zu speichern. DokuWiki ist eine einfache und flexible Plattform mit einer sauberen Syntax, die erfolgreich für die Bereitstellung leistungsstarker und kollaborativer Dokumentationswebsites eingesetzt werden kann.

Anforderungen

  • Minimale Installation von Debian 9 auf einer Bare-Metal-Server-Maschine oder auf einem Virtual Private Server.
  • sudo root-Rechte für ein lokales oder entferntes Konto oder direkten Zugriff auf das root-Konto.
  • Eine statische IP-Adresse, die für eine Ihrer Systemnetzwerk-Schnittstellenkarten konfiguriert ist.
  • Ein Domainname, privat oder öffentlich, je nach Ihrer Bereitstellung, mit den richtigen DNS-Einträgen, die für Webdienste konfiguriert sind. Wenn Sie keinen gültigen oder registrierten Domainnamen haben, können Sie die Installation durchführen und über Ihre Server-IP-Adresse auf die Website zugreifen.
  • Wenn Sie die Website-Registrierung, Versandhandelsbestätigungen und andere Funktionen nutzen möchten, sollten Sie einen funktionierenden Mailserver bei Ihnen vor Ort mit Fernzugriff auf seine .IMAP- und SMTP-Dienste konfigurieren.

Vorraussetzungen

Bevor Sie mit der Installation und Konfiguration von DokuWiki aus Quellen auf Ihrem eigenen Server beginnen, stellen Sie zunächst sicher, dass das System alle Softwareanforderungen für die Kompilierung und Installation der Anwendung erfüllt. Aktualisieren Sie im ersten Schritt Ihre System-Repositorys und Softwarepakete, indem Sie den folgenden Befehl ausführen.

apt update
apt upgrade

Führen Sie im nächsten Schritt den folgenden Befehl aus, um einige notwendige Dienstprogramme zu installieren, die zur weiteren Verwaltung Ihres Systems von der Befehlszeile aus verwendet werden.

apt install wget bash-completion zip unzip curl

Nachdem das System vollständig aktualisiert und die erforderlichen Dienstprogramme zur Verwaltung Ihres Servers installiert wurden, richten Sie den Namen für Ihr System ein, indem Sie den folgenden Befehl ausführen (ersetzen Sie Ihre Hostnamensvariable entsprechend).

hostnamectl set-hostname www.mywiki.com

Überprüfen Sie den Hostnamen und die Hosts-Datei des Computers, indem Sie die folgenden Befehle ausführen.

hostnamectl
cat /etc/hostname
hostname –s
hostname –f

Installieren Sie anschließend die ImageMagick-Software, die DokuWiki benötigt, um eine Miniaturansicht der Bilder zu erstellen, indem Sie den folgenden Befehl ausführen.

apt install imagemagick

Schließlich starten Sie den Debian-Server neu, um Kernel-Updates anzuwenden und den Hostnamen korrekt zu ändern.

init 6

DokuWiki ist eine webbasierte CMS-Wiki-Plattform, die in der Programmiersprache PHP serverseitig geschrieben ist. Um die PHP-Dateiskripte der Anwendung auszuführen, muss ein Webserver, wie z.B. der Apache HTTP-Server, und ein PHP-Verarbeitungs-Gateway im System installiert und betriebsbereit sein. Um den Apache Webserver und den PHP-Interpreter sowie alle erforderlichen PHP-Module zu installieren, die von der Anwendung für die ordnungsgemäße Ausführung benötigt werden, geben Sie den folgenden Befehl in Ihrer Serverkonsole aus.

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-curl php7.0-gd php7.0-opcache php7.0-json php7.0-mbstring php7.0-intl php-imagick php7.0-xml

Nachdem Apache und PHP installiert wurden, testen Sie, ob der Webserver läuft und auf Port 80 auf Netzwerkverbindungen wartet, indem Sie den folgenden Befehl mit root-Rechten ausführen.

netstat –tlpn

Für den Fall, dass die netstatNetzwerkdienstprogramm nicht standardmäßig auf Ihrem Debian-System installiert ist, führen Sie den folgenden Befehl aus, um es zu installieren.

apt install net-tools

Wenn Sie die Ausgabe des netstat-Befehls überprüfen, können Sie sehen, dass der Apache-Webserver auf eingehende Netzwerkverbindungen auf Port 80 wartet. Für die gleiche Aufgabe können Sie auch den Befehl ss verwenden, der in Debian 9 standardmäßig automatisch installiert wird.

ss- tulpn

Wenn Sie eine Firewall auf Ihrem System aktiviert haben, wie z.B. die UFW-Firewall-Anwendung, sollten Sie eine neue Regel hinzufügen, damit der HTTP-Verkehr die Firewall passieren kann, indem Sie den folgenden Befehl ausführen.

ufw allow WWW

oder

ufw allow 80/tcp

Wenn Sie iptables Rohregeln verwenden, um Firewall-Regeln auf Ihrem Debian-Server zu verwalten, fügen Sie die folgenden Regeln hinzu, um eingehenden Datenverkehr auf Port 80 auf der Firewall zu erlauben, damit Besucher Ihre Wiki-Anwendung durchsuchen können.

apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
iptables -I INPUT -p tcp --destination-port 22 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl status netfilter-persistent
systemctl enable netfilter-persistent.service

Aktivieren und wenden Sie anschließend das folgende Apache-Modul an, das von der Webanwendung benötigt wird, um die weboot .htaccess-Dateien zu aktivieren. Führen Sie die folgenden Befehle aus:

a2enmod rewrite
systemctl restart apache2

Testen Sie abschließend, ob die Standardwebseite des Apache Webservers in den Browsern Ihres Clients angezeigt werden kann, indem Sie Ihre IP-Adresse des Debian-Rechners oder Ihren Domänennamen oder Server FQDN über das HTTP-Protokoll besuchen, wie in der folgenden Abbildung gezeigt. Wenn Sie die IP-Adresse Ihres Computers nicht kennen, führen Sie ifconfig oder ip einen Befehl aus, um die IP-Adresse Ihres Servers preiszugeben.

http://your_domain.tld

Um das DowuWiki Webadministrations-Panel-Backend und die Frontend-Website über das HTTPS-Protokoll zu installieren und darauf zuzugreifen, das den Datenverkehr für Ihre Kunden sichert, geben Sie den folgenden Befehl aus, um das Apache Webserver-SSL-Modul und die SSL-Site-Konfigurationsdatei zu aktivieren.

a2enmod ssl
a2ensite default-ssl.conf

Öffnen Sie anschließend die Apache Standard-SSL-Site-Konfigurationsdatei mit einem Texteditor und aktivieren Sie die URL-Rewrite-Regeln, indem Sie die folgenden Zeilen Code nach der DocumentRoot-Anweisung hinzufügen. Führen Sie den folgenden Befehl aus:

nano /etc/apache2/sites-enabled/default-ssl.conf

Auszug aus der Konfigurationsdatei der SSL-Site:

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Nehmen Sie auch die folgende Änderung an der VirtualHost-Zeile vor, damit sie so aussieht, wie sie im folgenden Auszug gezeigt wird:

<VirtualHost *:443>

Schließen Sie die SSL-Apache-Datei und öffnen Sie die Datei /etc/apache2/sites-enabled/000-default.conf zur Bearbeitung und fügen Sie die gleichen URL-Umschreibungsregeln für die SSL-Konfigurationsdatei hinzu. Fügen Sie die Codezeilen nach der DocumentRoot-Anweisung ein, wie im folgenden Beispiel gezeigt.

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Starten Sie schließlich den Apache-Daemon neu, um alle bisher konfigurierten Regeln anzuwenden und Ihre Domäne über das HTTP-Protokoll zu besuchen. Da Sie die automatisch von Apache bei der Installation ausgegebenen selbstsignierten Zertifikatspaare verwenden, ein Zertifikat, das vom Browser nicht vertrauenswürdig ist, sollte im Browser eine Fehlermeldung angezeigt werden.

systemctl restart apache2

https://yourdomain.tld

Akzeptieren Sie die Warnung, um das nicht vertrauenswürdige Zertifikat zu akzeptieren, und werden Sie weiterhin auf die Standardwebseite des Apache weitergeleitet, wie in der Abbildung unten gezeigt.

Falls die UFW-Firewall-Anwendung eingehende Netzwerkverbindungen zum HTTPS-Port blockiert, sollten Sie eine neue Regel hinzufügen, damit der HTTPS-Verkehr die Firewall passieren kann, indem Sie den folgenden Befehl ausführen.

ufw allow ‘WWW Full’

oder

ufw allow 443/tcp

Wenn iptables die Standard-Firewall-Anwendung ist, die zum Schutz Ihres Debian-Systems auf Netzwerkebene installiert ist, fügen Sie die folgende Regel hinzu, um eingehenden Datenverkehr auf Port 443 in der Firewall zu erlauben, so dass Besucher Ihren Domänennamen durchsuchen können.

iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl status netfilter-persistent

Im nächsten Schritt müssen wir einige weitere Änderungen an der PHP-Standardkonfigurationsdatei vornehmen, um sicherzustellen, dass die folgenden PHP-Variablen aktiviert sind und die PHP-Zeitzoneneinstellung korrekt konfiguriert ist und mit Ihrem geografischen Standort übereinstimmt. Öffnen Sie die Datei /etc/php/7.0/apache2/php.ini zur Bearbeitung und stellen Sie sicher, dass die folgenden Zeilen wie abgebildet eingerichtet sind. Machen Sie auch zunächst ein Backup der PHP-Konfigurationsdatei.

cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini

Suchen, bearbeiten und ändern Sie die folgenden Variablen in der Dateiphp.iniKonfigurationsdatei:

file_uploads = On
default_charset = UTF-8
memory_limit = 128M
max_execution_time = 300
upload_max_filesize = 100M
short_open_tag = Off
output_buffering = Off
output_handler =
zlib.output_compression = Off
implicit_flush = Off
max_input_time = 60
max_input_vars = 10000
error_reporting = E_ALL & ~E_NOTICE
display_startup_errors = Off
log_errors = On
variables_order = “EGPCS”
register_argc_argv = Off
session.use_cookies = 1
date.timezone = Europe/London

Erhöhen Sie die Variable upload_max_file_size so, dass sie große Dateianhänge unterstützt, und ersetzen Sie die Variable time.zone entsprechend Ihrer physischen Zeit, indem Sie die Liste der Zeitzonen einsehen, die von PHP-Dokumenten unter folgendem Link bereitgestellt wird.http://php.net/manual/en/timezones.php

Wenn Sie die Ladegeschwindigkeit Ihrer Webseiten über das für PHP7 verfügbare OPCache Plugin erhöhen möchten, fügen Sie die folgenden OPCache Einstellungen am Ende der Konfigurationsdatei des PHP-Interpreters an, wie unten beschrieben:

[opcache]
opcache.enable=1 
opcache.enable_cli=1 
opcache.interned_strings_buffer=8 
opcache.max_accelerated_files=10000 
opcache.memory_consumption=128 
opcache.save_comments=1
opcache.revalidate_freq=1

Schließen Sie die Konfiguration php.ini und starten Sie den Apache-Daemon neu, um die neuen Änderungen anzuwenden, indem Sie den folgenden Befehl ausführen.

systemctl restart apache2

Erstellen Sie schließlich eine PHP-Infodatei, indem Sie den folgenden Befehl ausführen und überprüfen Sie, ob die PHP-Zeitzone korrekt konfiguriert wurde, indem Sie die PHP-Info-Skriptdatei von einem Browser aus unter der folgenden URL aufrufen, wie im folgenden Bild gezeigt. Scrollen Sie nach unten zur Datumseinstellung, um die Konfiguration der PHP-Zeitzone zu überprüfen.

echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php

https://domain.tld/info.php

DokuWiki installieren

Nachdem alle Systemanforderungen für die Installation Ihres Wiki-Dokumentations-CMS erfüllt sind, besuchen Sie die offizielle DokuWiki-Download-Seite unter https://download.dokuwiki.org/ und holen Sie sich das neueste stabile komprimierte Zip-Paket in Ihrem System, indem Sie den folgenden Befehl ausführen.

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

Nachdem der Download des Zip-Archivs abgeschlossen ist, entpacken Sie die DokuWiki-Zip-Archivdatei in Ihr aktuelles Arbeitsverzeichnis und listen Sie die entpackten Dateien auf, indem Sie die folgenden Befehle ausführen. Entfernen Sie auch die standardmäßige index.html-Datei, die vom Apache Webserver installiert wurde, im Webroot-Pfad und löschen Sie auch die zuvor erstellte info.php-Datei.

tar xzvf dokuwiki-stable.tgz
ls
rm /var/www/html/index.html
rm /var/www/html/info.php

Die Installationsdateien von DokuWiki befinden sich in Ihrem aktuellen Arbeitsverzeichnis im Verzeichnis dokuwiki-2017-20-19e. Geben Sie den Befehl ls ein, um die extrahierten Verzeichnisdateien aufzulisten. Kopieren Sie den gesamten Inhalt des extrahierten Verzeichnisses in den Stammpfad Ihres Webservers, indem Sie den folgenden Befehl ausführen. Stellen Sie außerdem sicher, dass Sie die versteckte Datei.htaccess in den Webroot-Pfad des HTTP-Servers kopieren.

ls dokuwiki-2017-02-19e/
cp -rf dokuwiki-2017-02-19e/* /var/www/html/
cp dokuwiki-2017-02-19e/.htaccess.dist /var/www/html/

Führen Sie anschließend die folgenden Befehle aus, um dem Apache-Laufzeitbenutzer volle Schreibrechte für den Web-Root-Pfad zu gewähren. Verwenden Sie den Befehl ls, um Berechtigungen für die installierten Dateien der Anwendung aufzulisten, die sich im Verzeichnis /var/wwww/html/ Verzeichnis befinden.

chown -R www-data:www-data /var/www/html/
ls –al /var/www/html/

Als nächstes fahren Sie mit dem DokuWiki-Installationsprozess fort, indem Sie einen Browser öffnen und die IP-Adresse oder den Domänennamen Ihres Servers oder den Server-FQDN über das HTTPS-Protokoll und das Skript install.php öffnen.

https://yourdomain.tld/install.php

Fügen Sie beim ersten Installationsskript den Namen Ihrer Wiki-Plattform hinzu und aktivieren Sie ACL aktivieren. Geben Sie einen Wiki-Superbenutzerkonto-Namen, den richtigen Namen und die E-Mail-Adresse des Superbenutzerkontos an und wählen Sie ein starkes Passwort, um das Superbenutzerkonto zu schützen.

Als nächstes wählen Sie Öffentliches Wiki (für alle lesen, schreiben und hochladen für registrierte Benutzer) als Ihre anfängliche ACL-Richtlinie und deaktivieren Sie die Option Benutzer können sich selbst registrieren, um den Wiki-Registrierungsprozess für Besucher zu deaktivieren. Wählen Sie außerdem Ihre bevorzugte Inhaltslizenz aus den angezeigten Optionen aus und deaktivieren Sie die Option, einmal im Monat anonyme Daten an DokuWiki-Entwickler zu senden.

Wenn Sie fertig sind, klicken Sie auf die Schaltfläche Save, um die Konfiguration zu übernehmen.

Auf dem nächsten Bildschirm informiert Sie das Installationsprogramm, dass Ihre vorherigen Konfigurationen erfolgreich in der DokuWiki-Konfigurationsdatei gespeichert wurden, die sich im Root-Pfad Ihres Webservers befindet, und Sie können die Installationsdatei löschen.

Bevor Sie sich in Ihr Wiki CMS Backend-Administrationspanel einloggen, kehren Sie zur Serverkonsole zurück und geben Sie die folgenden Befehle ein, um die Installationsdatei und die sicheren DokuWiki-Systemkonfigurationsdateien zu löschen.

rm -rf /var/www/html/install.php
chown -R root:root /var/www/html/
chown -R www-data:root /var/www/html/data/
chown -R www-data:root /var/www/html/lib/plugins/
chown -R www-data:root /var/www/html/lib/tpl/
chown -R www-data:root /var/www/html/conf/local.php*
chown -R www-data:root /var/www/html/conf/users.auth.php
chown -R www-data:root /var/www/html/conf/acl.auth.php
chown -R www-data:root /var/www/html/conf/plugins.local.php*

Um Ihr Wiki-Anwendungs-Frontend zu besuchen, navigieren Sie einfach über das HTTPS-Protokoll zu Ihrer Server-IP-Adresse oder Ihrem Domänennamen und das Standard-DokuWiki wird angezeigt, wie im folgenden Screenshot gezeigt.

https://yourdomain.tld

Um die DokuWiki-Plattform zu verwalten, klicken Sie auf den oberen Link Anmelden und verwenden Sie die Anmeldeinformationen, die während des Installationsvorgangs konfiguriert wurden, um sich im DokuWiki-Backend-Administrationsbereich anzumelden – wie im Screenshot unten gezeigt.

Um Ihre Wiki-Plattform weiter zu konfigurieren, klicken Sie auf die Schaltfläche Admin oben und verwenden Sie die Administrationslinks, um Benutzer, ACL, Erweiterungen, Vorlagenstileinstellungen oder andere benutzerdefinierte Einstellungen zu verwalten.

Schließlich, um die Besucher zu zwingen, die Wiki-Website zu durchsuchen und sicher auf die Backend-Schnittstelle über das HTTPS-Protokoll zuzugreifen, um den Datenverkehr zwischen dem Server und den Client-Browsern zu verschlüsseln, kehren Sie zum Terminal Ihres Servers zurück und öffnen Sie die .htaccess-Datei, die sich im Stammpfad Ihrer Website befindet, indem Sie die folgenden Befehle ausführen.

cp /var/www/html/.htaccess.dist /var/www/html/.htaccess
nano /var/www/html/.htaccess

Bearbeiten Sie dann die.htaccess-Datei und am Ende der Datei können Sie die nativen PHP-Servereinstellungen mit den folgenden Konfigurationen ändern. Ändern Sie die PHP-Einstellungen, um sie an Ihre eigenen Server-Ressourcen und -Konfigurationen anzupassen.

.htaccessDateiauszug:

# Modify PHP settings
php_value session.use_trans_sid 0
php_value register_globals 1
php_value upload_max_filesize 100M
php_value post_max_size 100M

Fügen Sie schließlich die folgenden Regeln in die .htaccess-Datei ein, um den Domainverkehr automatisch auf HTTPS umzuleiten.

# Redirect to HTTPS for all pages including the main web page
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

Options -Indexes
</IfModule>

Falls Sie nur die Login-, Profil- und Admin-Seiten auf https umleiten möchten, ersetzen Sie die oben genannten Umleitungsregeln durch die unten aufgeführten. In diesem Fall wird die Hauptseite Ihrer Wiki-Website nicht auf das https-Protokoll umgeleitet.

# Switch to HTTPS on login, profile and admin actions
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteCond %{QUERY_STRING} do=(log|profile|admin)
RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [R,QSA,L,NE]

Das ist alles! Sie haben die DokuWiki-Plattform in Debian 9.2 erfolgreich installiert und konfiguriert. Da der Apache HTTP-Server jedoch selbstsignierte Zertifikate verwendet, um den Datenverkehr zwischen dem Server und den Browsern der Besucher zu verschlüsseln, wird immer eine Warnmeldung generiert und in deren Browsern angezeigt. Diese Warnung ist schlecht für die Reputation Ihrer Website und SEO. In diesem Fall sollten Sie ein von einer vertrauenswürdigen Zertifizierungsstelle ausgestelltes Zertifikat kaufen oder ein kostenloses Zertifikatspaar von Let’s Encrypt CA erhalten.

Für weitere benutzerdefinierte Konfigurationen bezüglich DokuWiki besuchen Sie die Dokumentationsseite unter folgender Adresse: https://www.dokuwiki.org/dokuwiki

Das könnte Dich auch interessieren …