Ubuntu 16.04 - Mediawiki mit VisualEditor installieren
Verwenden Sie die Dokumentation nur noch bei gerechtfertigten Anwendungsfällen.
Einleitung
Diese Dokumentation beschreibt den Installationsvorgang von Mediawiki.
Bitte vergewissern Sie sich, dass Ihr System über die nötigen Voraussetzungen verfügt, wie in der Infobox beschrieben. Weiterhin sind Grundkenntnisse im Umgang mit Linux erforderlich, da die Vorgehensweise, wie sie hier beschrieben ist, in manchen Teilen abweichen kann. Kein System ist wie das Andere. Die Dokumentation wurde sorgfältig von mir geprüft. Dennoch kann ich keinerlei Haftung für Schäden an Ihrem System oder eine Gewährleistung übernehmen. Bitte verwenden Sie diese Dokumentation auf eigene Gefahr.
Stellen Sie sicher, dass Ihr System über folgende Voraussetzungen verfügt:
- Ubuntu 16.04
- Webserver
- PHP Version 7.0.0 oder neuer
- Datenbankserver
- MariaDB
- oder MySQL
Schritt für Schritt:
Herunterladen und entpacken
Mediawiki herunterladen und im Verzeichnis des Webservers (z.B. /var/www) enptacken:
wget https://releases.wikimedia.org/mediawiki/1.32/mediawiki-1.32.0.tar.gz
tar xvzf mediawiki-1.32.0.tar.gz
Den entpackten Ordner umbenennen (optional) und Zugriffsrechte für den Webserver setzen:
mv mediawiki-1.32.0 mediawiki
chown -R www-data:www-data mediawiki
MySQL-Datenbank einrichten
Wechseln Sie auf die MySQL-Kommandozeile:
# sudo mysql -u root -p
Erstellen Sie eine neue MySQL-Datenbank mysql_wikidb
:
mysql> CREATE DATABASE mysql_wikidb;
mysql> use mysql_wikidb;
Erstellen Sie einen neuen MySQL-Benutzer mysql_user_wikidb
:
mysql> CREATE USER 'mysql_user_wikidb'@'localhost' IDENTIFIED BY 'SicheresPasswortVerwenden!';
und vergeben Sie die nötigen Zugriffsrechte auf die Mediawiki-Datenbank:
mysql> GRANT ALL ON mysql_wikidb.* TO 'mysql_user_wikidb'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit;
Apache-Config erstellen
Erstellen Sie im Ordner /etc/apache2/conf-available
die Datei mediawiki.conf
mit folgendem Inhalt:
Pfade sind entsprechend anzupassen!
# mediawiki.conf
Alias /wiki /var/www/mediawiki/
<Directory /var/www/mediawiki>
Options +FollowSymlinks
AllowOverride All
DirectoryIndex index.php
php_admin_flag safe_mode Off
php_admin_value open_basedir /dev/urandom:/tmp/:/usr/share/pear/:/var/www/:/var/www/mediawiki/:/bin/bash
</Directory>
Danach muss die neue Config aktiviert werden:
#sudo a2enconf mediawiki
#sudo service apache2 reload
PHP-Erweiterungen installieren und anpassen
Laden Sie die notwendigen PHP-Erweiterung herunter:
#sudp apt-get install libpcre3 php-json php-curl php-gd php-mbstring php-xml
Passen Sie die Option Maximum upload file size
und Memory limit
in der Datei /etc/php/7.0/apache2/php.ini
an:
Ich empfehle eine Maximum upload file size
von 20 MByte, damit auch hochauflösende Bilder verwendet werden können. Manche PHP-Scripte benötigen viel Arbeitsspeicher. Daher empfehle ich ein Memory Limit
von 128 MByte.
# php.ini
...
upload_max_filesize = 20M
memory_limit = 128M
...
Starten Sie Apache neu, damit die Änderungen aktiviert werden:
# sudo service apache2 restart
Mediawiki einrichten
Navigieren Sie mit Ihrem Browser zu http://<hostname>/wiki und folgen Sie den Anweisungen um die LocalSettings.php
zu erstellen. Folgen Sie den Anweisungen auf dem Bildschirm und kontrollieren Sie, ob alle Voraussetzungen erfüllt sind. Sollte es zu Fehlermeldungen kommen, prüfen Sie zunächst, ob die bemängelte Erweiterung auf Ihrem System installiert ist. Falls eine PHP-Erweiterung als "Nicht gefunden" deklariert ist, obwohl Sie diese installiert haben, aktivieren Sie diese einfach manuell:
# sudo phpenmod mbstring
# sudo phpenmod xml
# sudo phpenmod php-gd
usw.
Starten Sie anschliessend Apache neu und führen Sie das Mediawiki-Setup erneut aus.
# sudo service apache2 restart
Verbinden der Datenbank
Erweiterungen
Unter Erweiterungen können Sie erstmal alles auswählen. Viele Funktionen werden Ihnen bei der Erstellung von Inhalten und bei der Administration sehr helfen. Erfahrungsgemäß ist es immer sehr ärgerlich, wenn man einen umständlichen Weg für einen Anwendungsfall nutzt und erst im Nachhinein bemerkt, dass die passende Erweiterung bereits verfügar gewesen wäre. Alle hier festgelegten Optionen lassen sich auch noch im Nachhinein verändern.
LocalSettings.php
Nach Abschluss der Installation wird die LocalSettings.php
generiert und automatisch heruntergeladen. Kopieren Sie diese in das Installationsverzeichnis /var/www/mediawiki
Ihrer Mediawiki-Installation auf dem Webserver.
Öffnen Sie die Datei LocalSettings.php
und passen Sie den Server-Namen entsprechend Ihrer Domain an:
...
## The protocol and server name to use in fully-qualified URLs
$wgServer = "http://<DOMAIN_NAME>";
...
VisualEditor installieren:
Herunterladen und entpacken
Navigieren Sie mit Ihrem Browser zu https://www.mediawiki.org/wiki/Special:ExtensionDistributor/VisualEditor und wählen Sie Ihre Mediawiki-Version aus (in diesem Beispiel Version 1.32). Der Download-Link wird automatisch generiert.
Laden Sie den VisualEditor herunter und entpacken Sie diesen in das Verzeichnis des Web-Servers:
wget https://extdist.wmflabs.org/dist/extensions/VisualEditor-REL1_32-21d40ce.tar.gz #mit generiertem Link vergleichen!
tar -xzf VisualEditor-REL1_32-21d40ce.tar.gz -C /var/www/mediawiki/extensions
Anschliessend die Zugriffsrechte für den Webserver setzen:
# sudo chown -R www-data:www-data /var/www/mediawiki/extensions/VisualEditor
LocalSettings.php anpassen
Fügen Sie Ihrer LocalSettings.php
folgendes hinzu:
wfLoadExtension( 'VisualEditor' );
// Enable by default for everybody
$wgDefaultUserOptions['visualeditor-enable'] = 1;
// Optional: Set VisualEditor as the default for anonymous users
// otherwise they will have to switch to VE
// $wgDefaultUserOptions['visualeditor-editor'] = "visualeditor";
// Don't allow users to disable it
$wgHiddenPrefs[] = 'visualeditor-enable';
// OPTIONAL: Enable VisualEditor's experimental code features
#$wgDefaultUserOptions['visualeditor-enable-experimental'] = 1;
$wgVisualEditorAvailableNamespaces = [
"File" => false
];
$wgVisualEditorAvailableNamespaces = [
"File" => false,
"Extra" => true
];
Parsoid installieren
Wichtig! Node.js Version prüfen
Parsoid läuft unter Node.js und setzt mindestens Node.js Version 6.x voraus! Prüfen Sie also vor der Installation von Parsoid die auf Ihrem Server verwendete Version:
# nodejs --version
v6.16.0
Sollten Sie nicht mindestens Version 6.x installiert haben, aktualisieren Sie Node.js wie folgt:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
# sudo apt-get install -y nodejs
Mediawiki-Repository hinzufügen und Parsoid installieren
Parsoid ist im offieziellen Mediawiki-Repository enthalten. Dieses muss Ihrer Ubuntu-Installation hinzugefügt werden.
Importieren Sie zunächst den Repository-GPG-Key:
# sudo apt install dirmngr
# sudo apt-key advanced --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 90E9F83F22250DD7
Fügen Sie das Wikimedia-Repository hinzu:
# sudo apt-get install software-properties-common
# sudo apt-add-repository "deb https://releases.wikimedia.org/debian jessie-mediawiki main"
Installieren Sie Parsoid:
# sudo apt install apt-transport-https
# sudo apt update && sudo apt install parsoid
Parsoid einrichten
Öffnen Sie die Datei /etc/mediawiki/parsoid/config.yaml
und passen Sie die API-Url (uri:
)an:
# config.yaml
...
mwApis:
- # This is the only required parameter,
# the URL of you MediaWiki API endpoint.
uri: 'http://localhost/wiki/api.php'
# The "domain" is used for communication with Visual Editor
# and RESTBase. It defaults to the hostname portion of
# the `uri` property below, but you can manually set it
# to an arbitrary string.
domain: 'localhost' # optional
...
Aus Sicherheitsgründen empfehle ich zusätzlich den Dienst nur auf localhost lauschen zu lassen. Kommentieren Sie dazu die Zeile #serverInterface: '127.0.0.1'
aus,indem Sie die Raute entfernen:
# config.yaml
...
# Allow override of port/interface:
#serverPort: 8000
serverInterface: '127.0.0.1'
...
Starten Sie den Parsoid-Dienst neu, damit die geänderte Konfiguration verwendet wird:
# sudo service parsoid restart
Prüfen Sie, ob der Parsoid-Dienst läuft und nur auf localhost
lauscht:
# netstat -tulpe
Aktive Internetverbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 localhost:8142 *:* LISTEN parsoid 128148 26142/nodejs
tcp 0 0 *:http *:* LISTEN root 119788 5548/apache2
...
VisualEditor mit Parsoid verbinden
Damit der VisualEditor Daten mit Parsoid austauschen kann, muss der LocalSettings.php
folgendes hinzugefügt werden:
$wgVirtualRestConfig['modules']['parsoid'] = array(
// URL to the Parsoid instance
// Use port 8142 if you use the Debian package
'url' => 'http://localhost:8142',
// Parsoid "domain", see below (optional)
'domain' => 'localhost',
// Parsoid "prefix", see below (optional)
'prefix' => 'localhost'
);
Besonderheit bei nichtöffentlichen Wikis
Wenn Sie Ihre Wiki nicht öffentlich verwenden wollen, also zum Erstellen und Bearbeiten von Inhalten Zugriffsrechte erforderlich sind, müssen dem Parsoid-Dienst diese Rechte eingeräumt werden. Erstellen Sie dazu zunächst über das Mediawiki-Webinterface einen Wiki-Benutzer mit dem Benutzernamen parsoid
und weisen Sie ihm die Rolle "Bot" zu.
Anschliessend wird die Erweiterung NetworkAuth
benötigt, damit der Parsoid-Dienst als legitimer Benutzer authentifiziert werden kann.
NetworkAuth Herunterladen und entpacken
Navigieren Sie mit Ihrem Browser zu https://www.mediawiki.org/wiki/Special:ExtensionDistributor/NetworkAuth und wählen Sie Ihre Mediawiki-Version aus (in diesem Beispiel Version 1.32). Der Download-Link wird automatisch generiert.
Laden Sie die Erweiterung NetworkAuth
herunter und entpacken Sie diesen in das Verzeichnis des Web-Servers:
wget https://extdist.wmflabs.org/dist/extensions/NetworkAuth-REL1_32-214187b.tar.gz #mit generiertem Link vergleichen!
tar -xzf NetworkAuth-REL1_32-214187b.tar.gz -C /var/www/mediawiki/extensions
Anschliessend die Zugriffsrechte für den Webserver setzen:
# sudo chown -R www-data:www-data /var/www/mediawiki/extensions/NetworkAuth
LocalSettings.php anpassen
Fügen Sie Ihrer LocalSettings.php
folgendes hinzu:
require_once "$IP/extensions/NetworkAuth/NetworkAuth.php";
$wgNetworkAuthUsers[] = [
'iprange' => [ '127.0.0.1' ],
'user' => 'parsoid'
];
if ( !isset( $_SERVER['REMOTE_ADDR'] ) OR $_SERVER['REMOTE_ADDR'] == '127.0.0.1' ) {
$wgGroupPermissions['*']['read'] = true;
$wgGroupPermissions['*']['edit'] = true;
}
Bei Fehlermeldung HTTP500
Sollte beim Aufruf von VisualEditor die Fehlermeldung HTTP500 oder Ähnlich erscheinen, aktivieren Sie zunächst php-curl
erneut:
#sudo phpenmod php-curl
#sudo service apache2 reload
Bekannte Probleme
Wird im VisualEditor ein Inhalt erstellt, der die Funktion Codeblock
enthält, so passiert es, dass dieser Codeblock
bei erneutem Bearbeiten mit VisualEditor nicht mehr visuell dargestellt wird, sondern nur noch als Quellcode erscheint. Im Lesemodus wird der Codeblock
zwar fehlerfrei angezeigt, aber im Bearbeitungsmodus erhält man nur noch den Quellcode.
Ich habe hierzu derzeit noch keine Lösung gefunden. Eventuell wird das Problem in zukünftigen Versionen verschwinden.