Server Installation/MediaWiki

Aus Opennet
Version vom 10. Oktober 2016, 05:43 Uhr von MathiasMahnke (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Aktueller Status siehe Special:Version.

Inhaltsverzeichnis

Grundinstallation

TODO

# allow only registered users to edit pages
$wgGroupPermissions['*']['edit'] = false;
# allow new users to create an account
$wgGroupPermissions['*']['createaccount'] = true;
# require confirmation of new accounts via email
$wgEmailConfirmToEdit = true;
# Erlauben von Dateiendungen
$wgFileExtensions[] = "pdf";
$wgFileExtensions[] = "txt";
$wgFileExtensions[] = "zip";
$wgFileExtensions[] = "tar";
$wgFileExtensions[] = "gz";
$wgFileExtensions[] = "dia";
$wgFileExtensions[] = "odt";
$wgFileExtensions[] = "sh";
$wgFileExtensions[] = "dia";

Updates

Vorab: Backup der Installation und der DB prüfen!

MediaWiki in Read-Only Modus versetzen - LocalSettings.php:

$wgReadOnly = 'Das Opennet Wiki wird auf eine neue Softwareversion aktualisiert. \
  Derzeit daher keine Bearbeitung möglich.';

Aktuelle Version herunterladen und bereit stellen in /var/www/:

wget <download-url> 
cp -ar mediawiki-<old-version> mediawiki-<new-version>
tar xfzv mediawiki-<new-version>.tar.gz -C mediawiki-<new-version>/ --strip-components=1
  • MediaWiki DB clonen und vorbereiten:
mysqldump wiki_<old-version> > /tmp/wiki_<old-version>.dmp
mysqladmin create wiki_<new-version>
mysql
 grant index, create, select, insert, update, delete, alter, lock tables on wiki_<new-version>.* to wiki_user;
 flush privileges;
 \q
mysql wiki_<new-version> < /tmp/wiki_<old-version>.dmp

Neue Version in Apache aktivieren und MediaWiki DB Update durchfuehren:

  • wiki.inc in /etc/apache/sites-available anpassen
  • Upgrade in /var/www/mediawiki-<new-version> ausführen: php update.php
  • Extensions und Skins schreittweise aktualisieren, siehe LocalSettings.php

Dateirechte korregieren - /var/www/mediawiki-<version>/

chown -R root:root *
chown -R root:root .*
chown -R www-data images/

Bei Fehlern inbesondere das PHP Logfile unter /var/log/php.log konsultieren. Weiterhin liefert MediaWiki in jede Seite Debug Informationen als HTML Kommentar falls $wgDebugComments = true; in LocalSettings.php aktiviert.

Apache Konfiguration

Einbindung unter /wiki:

alias /w /var/www/mediawiki-<version>
alias /wiki /var/www/mediawiki-<version>/index.php
RewriteEngine on
RewriteRule ap_button_([0-9\.]+).png http://www.opennet-initiative.de/button/?ap=$1
RewriteRule ^/index.php/(.*) http://wiki.opennet-initiative.de/wiki/$1

Besonderheit für /wiki/Opennet_Blog:

RewriteRule ^/wiki/Opennet_Blog http://wiki.opennet-initiative.de/wiki/Spezial:OnBlog/ [P]
ProxyPassReverse /wiki/Opennet_Blog http://wiki.opennet-initiative.de/wiki/Spezial:OnBlog/

PHP Konfiguration

Erhöhung des Session Timeouts auf 48 h in /etc/php5/apache2/php.ini

session.gc_maxlifetime = 172800

Sessions werden unter /var/lib/php5/ gespeichert.

Extensions

Bei Opennet verwendete MediaWiki Extensions.

Standarderweiterungen

  • ParserFunctions - Funktionen für Vorlagen
  • UsabilityInitiative - verbesserte Editoren/Menus
  • Vector - verbessertes Design
  • ConfirmEdit - Anti-Spam Captcha
  • WPtouch - Skin für mobile Endgeräte
  • Simple mobile skin auto change - automatischer Skin Wechsel zu WPtouch bei mobilen Endgeräten
  • InstantCommons - Bildeinbindung aus Wikipedia Commons
  • Loops - Schleifen ausführen, benötigt für APData
  • ContactForm - öffentliches Kontaktformular (Special:Contact; Template: MediaWiki:Contactpage, MediaWiki:Contactpage-defsubject, MediaWiki:Contactpage-pagetext; Versand via Benutzer:OpennetContactForm; Captcha via ConfirmEdit Extension)
  • ImageMap - Erzeugen von Grafiken
  • GraphViz - spezielle Beschreibungssprache für Graphen, setzt ImageMap Extension (MediaWiki) sowie "graphviz" und "graphviz-dev" (Debian) voraus

Eigenentwicklungen/Anpassungen

  • APData - AP-Statusdaten/OLSR-Nameservice
  • OnBlog - Opennet Blog Extension auf Wikibasis
    • OnBlogOverview - Liste der letzten Blogeinträge
    • OnBlogSpecialAll - Blogausgabe alle Beiträge (Spezial:OnBlog/)
    • OnBlogSpecialUser - Blogausgabe Beiträge eines Benutzers ([[Spezial:OnBlogUser/Benutzer:<Username>]])
    • BlogFeed - Blogausgabe als RSS Feed (Spezial:BlogFeed)
  • OnMisc - Sammlung verschiedener Opennet Extensions
    • OnApPos
    • OnApStatus
    • OnLastSeen
    • OnRandomImage - Zufallsbild aus der Gallery
    • OnRemoteAddrExtension
    • OniFrame -- Openstreetmap-Karte (slippymap) einbinden
      • Beispiel: <OniFrame src="https://www.opennet-initiative.de/map/?lat=54.09130&lon=12.12308&zoom=16&layers=B00TTTT" height="300px" width="40%" style="padding:0px;" scrolling="no" marginheight="0" marginwidth="0" frameborder="0"></OniFrame>


Namespaces

  • 100 = EN
  • 101 = ES
  • 102 = FR

Verwendet für Internationalisierung mit der Vorlage:Languages sowie Vorlage:Countryflag‎‎.

Testsystem

Auf Server/yurika gibt es Stand 2016 ein MediaWiki Testsystem.

  • Datensyncronisation vom Produktiv- zum Testsystem:
rsync -axH --copy-unsafe-links --exclude=/LocalSettings.php /var/www/mediawiki-1.20.6/ \
  matthias@yurika.opennet-initiative.de:mediawiki-clone/
mysqldump --add-drop-table wiki_1206 | gzip | pv | ssh matthias@yurika.opennet-initiative.de \ 
 "cat >wiki_$(date +%Y%m%d).sql.gz"
  • Anlegen der Apache Konfiguration, Einlesen der MySQL Datenbank
  • Workaround für MediaWiki und libpcre: http://stackoverflow.com/a/38457054
  • Deaktivieren des E-Mail Versandes in LocalSettings.php:
$wgEnableEmail = false;
Meine Werkzeuge
Namensräume

Varianten
Aktionen
Start
Opennet
Kommunikation
Karten
Werkzeuge