Ubuntu 16.04 - Mediawiki mit VisualEditor installieren

Aus Twilight-Networks Wiki
Wechseln zu:Navigation, Suche


Outdated.png


Diese Dokumentation ist nicht mehr aktuell und wurde ersetzt.

Verwenden Sie die Dokumentation nur noch bei gerechtfertigten Anwendungsfällen.

Neue Version: Keine aktuelle Version verfügbar.



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.


Ubuntu 16.04 - Mediawiki mit VisualEditor installieren

Stellen Sie sicher, dass Ihr System über folgende Voraussetzungen verfügt:

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


Mediawiki sql settings01.png
Mediawiki sql settings02.png


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.