Server Installation/MediaWiki: Unterschied zwischen den Versionen

Aus Opennet
Wechseln zu: Navigation, Suche
(Standarderweiterungen: InstantCommons)
(Testsystem)
 
(22 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
Aktueller Status siehe [[Special:Version]].
 
Aktueller Status siehe [[Special:Version]].
  
=== Grundinstallation ===
+
== Grundinstallation ==
  
 
TODO
 
TODO
Zeile 11: Zeile 11:
 
  # require confirmation of new accounts via email
 
  # require confirmation of new accounts via email
 
  $wgEmailConfirmToEdit = true;
 
  $wgEmailConfirmToEdit = true;
   
+
  # Erlauben von Dateiendungen
 +
$wgFileExtensions[] = "pdf";
 +
$wgFileExtensions[] = "txt";
 +
$wgFileExtensions[] = "zip";
 +
$wgFileExtensions[] = "tar";
 +
$wgFileExtensions[] = "gz";
 +
$wgFileExtensions[] = "dia";
 +
$wgFileExtensions[] = "odt";
 +
$wgFileExtensions[] = "sh";
 +
$wgFileExtensions[] = "dia";
  
=== Updates ===
+
== Updates ==
  
TODO
+
Vorab: Backup der Installation und der DB prüfen!
  
=== Extensions ===
+
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.
 
Bei Opennet verwendete MediaWiki Extensions.
  
==== Standarderweiterungen ====
+
=== Standarderweiterungen ===
  
 
* ParserFunctions - Funktionen für Vorlagen
 
* ParserFunctions - Funktionen für Vorlagen
Zeile 30: Zeile 88:
 
* Simple mobile skin auto change - automatischer Skin Wechsel zu WPtouch bei mobilen Endgeräten
 
* Simple mobile skin auto change - automatischer Skin Wechsel zu WPtouch bei mobilen Endgeräten
 
* InstantCommons - Bildeinbindung aus Wikipedia Commons
 
* 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 ====
+
=== Eigenentwicklungen/Anpassungen ===
  
 
* APData - AP-Statusdaten/OLSR-Nameservice
 
* APData - AP-Statusdaten/OLSR-Nameservice
* Blog - Neuigkeiten auf Wikibasis
+
* OnBlog - Opennet Blog Extension auf Wikibasis
* BlogOverview - Übersicht Blogbeiträge
+
** OnBlogOverview - Liste der letzten Blogeinträge
* BlogArchive - Übersicht Blogarchiv
+
** OnBlogSpecialAll - Blogausgabe alle Beiträge ([[Spezial:OnBlog/]])
* BlogFeed - RSS Feed für Opennet Blog
+
** OnBlogSpecialUser - Blogausgabe Beiträge eines Benutzers ([[Spezial:OnBlogUser/Benutzer:<Username>]])
* OnApPos
+
** BlogFeed - Blogausgabe als RSS Feed ([[Spezial:BlogFeed]])
* OnApStatus
+
* OnMisc - Sammlung verschiedener Opennet Extensions
* OnLastSeen
+
** OnApPos
* OnRandomImage - Zufallsbild aus der Gallery
+
** OnApStatus
* OnRemoteAddrExtension
+
** OnLastSeen
* OniFrame
+
** OnRandomImage - Zufallsbild aus der Gallery
* wfmap
+
** OnRemoteAddrExtension
 +
** OniFrame -- Openstreetmap-Karte (slippymap) einbinden
 +
*** Beispiel: <nowiki>
 +
<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>
 +
</nowiki>
 +
 
 +
 
 +
== 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 <tt>LocalSettings.php</tt>:
 +
$wgEnableEmail = false;
  
 
[[Kategorie:Server]]
 
[[Kategorie:Server]]

Aktuelle Version vom 10. Oktober 2016, 05:43 Uhr

Aktueller Status siehe Special:Version.

Inhaltsverzeichnis

[Bearbeiten] 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";

[Bearbeiten] 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.

[Bearbeiten] 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/

[Bearbeiten] 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.

[Bearbeiten] Extensions

Bei Opennet verwendete MediaWiki Extensions.

[Bearbeiten] 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

[Bearbeiten] 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>


[Bearbeiten] Namespaces

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

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

[Bearbeiten] 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