Wiki-Administration

Aus Debacher-Wiki
Wechseln zu: Navigation, Suche


Auf dieser Seite finden sich Hinweise zur Administration und Konfiguration eines Wiki.


Uploads

In der Standardkonfiguration sind Datei-Uploads normalerweise nicht erlaubt. Will man Uploads zulassen, so muss man in der Datei LocalSettings.php in der Zeile

$wgEnableUploads = false

das Wort false durch das Wort true ersetzen

## To enable image uploads, make sure the 'images' directory
## is writable, then uncomment this:
$wgEnableUploads		= true;
$wgUseImageMagick = true;
$wgImageMagickConvertCommand = "/usr/bin/convert";

In der letzten Zeile ist ImageMagick, das Tool zum Konvertieren von Bildern aktiviert. Das Installationstool hat erkannt, dass ImageMagick installiert ist. Unter Linux ist das Programm normalerweise vorhanden oder leicht nachinstallierbar. Unter Windows muss man wohl damit leben, dass es nicht zur Verfügung steht.

Mediawiki wird standardmäßig mit einem Logo ausgeliefert, welches geradezu danach schreit ausgewechselt zu werden. Ein eigenes Logo sollte nicht größer sein als 135x135, weil sonst Anpassungen am CSS notwendig werden. Ein kleineres Logo ist aber unkritisch. Eine Möglichkeit besteht darin das Logo durch Tux, das Linus-Maskottchen zu ersetzen. Eine passende Version findet sich unter http://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Tux.png/101px-Tux.png

Im einfachsten Fall lädt man dieses Logo in das Verzeichnis /mediawiki/images/ und ergänzt dann die LocalSettings.php um die folgende Zeile:

$wgLogo="/mediawiki/images/101px-Tux";

Lädt man die Wiki-Seite neu, so zeigt sich das Tux-Logo

Mediawiki-Tux.png


Benutzerrechte

Generell ist es so, dass man im Wikiverzeichnis im Ordner includes eine Datei DefaultSettings.php findet, die man nicht direkt ändern sollte, die aber alle möglichen Einstellungen zeigt. Veränderungen nimmst du dann in der Datei LocalSettings.php vor. In der DefaultSettings.php findet man ab Zeile 714 die entsprechenden Einstellungen zum Sichern des Wiki.

Praktisch ergänzt man die LocalSettings.php um die Zeilen:

$wgGroupPermissions['*'    ]['createaccount']   = true;
$wgGroupPermissions['*'    ]['read']            = true;
$wgGroupPermissions['*'    ]['edit']            = false;

Dann sollte das Ziel erreicht sein.

Man kann dem anonymen Nutzer auch das Leserecht nehmen. Dazu muss nur in der mittleren Zeile statt true ein false stehen. Ohne weitere Änderungen ist das Wiki dann aber nutzlos, weil man keine Seite mehr aufrufen kann, auch nicht die Anmeldeseite. Um dieses Problem zu lösen, kann man einzelne Seiten von dieser Beschränkung ausnehmen:

$wgWhitelistRead = array( "Main Page", "Hauptseite", "Special:Userlogin", "-", "MediaWiki:Monobook.css" );

Dann kann man anonym die Startseite und die Anmeldeseite aufrufen. Wenn man dann auch noch die Zeile mit createaccount auf false setzt, dann können nur noch eingerichtete Benutzer auf das Wiki zugreifen.

Hinweis: Mit der Schreibweise der Seitennamen muss man manchmal etwas experimentieren. In einigen Wiki-Versionen musste ich statt Special:Userlogin die Schreibweise Spezial:Userlogin eintragen. Bei Seitennamen mit Leerzeichen wird in der URL statt des Leerzeichens ein Unterstrich angezeigt, hier muss aber die Version mit Leerzeichen eingetragen werden.


Navigation

Über die Spezialseite MediaWiki:Sidebar lässt sich die Navigationsleiste editieren und an die eigenen Bedürfnisse anpassen.

Mediawiki-Sidebar1.png

Um an dieser Seite Veränderungen vornehmen zu können, muss man am Wiki angemeldet sein. Bei der Installation hat man einen Admin-Benutzer angelegt, mit diesem Account kann man sich jetzt anmelden. Nach der Anmeldung steht auf der Spezial-Seite die Schaltfläche erstellen zur Verfügung. Klickt man darauf, so landet man ganz normal im Seiten-Editor. Im Prinzip tauchen hier nur Links auf, im vorderen Teil eine URL bzw. eine Wiki-Adresse und hinter dem senkrechten Strich der Text, der angezeigt wird. Für die Standard-Einträge sind auch Übersetzungs-Mechanismen vorhanden.

Im folgenden Listing ist der Eintrag Gemeinschafts-Portal entfernt und durch einen Link auf die HAW-Homepage ersetzt:

* navigation
** mainpage|mainpage-description
** http://www.haw-hamburg.de%7CHAW
** currentevents-url|currentevents
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help
* SEARCH
* TOOLBOX
* LANGUAGES

Mediawiki-Sidebar2.png


Nettere URL

Eine URL wie http://www.debacher.de/wiki/Wiki-Administration ist aus mehreren Gründen schöner, als http://www.debacher.de/uwiki/index.php?title=Wiki-Administration

  • Die kurze Version ist deutlich einprägsamer
  • Die kurze Version ist für Suchmaschinen besser zu erreichen

Um die URL in der kürzeren Version darstellen zu können, muss man eine kleine Änderung in der Datei LocalSettings.php vornehmen und eine kleine Änderung in der Konfigurationsdatei des Apache.

Die Beschreibung geht davon aus, dass das Wiki im Verzeichnis

/srv/www/htdoc/uwiki

installiert ist.

In der LocalSettings.php erfolgt dann eine kleine Änderung:

$wgScriptPath       = "/uwiki";
$wgScript           = "$wgScriptPath/index.php";
$wgRedirectScript   = "$wgScriptPath/redirect.php";
 
## If using PHP as a CGI module, use the ugly URLs
#$wgArticlePath      = "$wgScript/$1";
# $wgArticlePath      = "$wgScript?title=$1";
$wgArticlePath    = "/wiki/$1";

die hier drittletzte Zeile wird durch Voranstellen des #-Zeichens deaktiviert und die letzte Zeile ergänzt. Dadurch erzeugt Mediawiki interne Links, die nicht mehr auf das wirkliche Verzeichnis /uwiki sondern das virtuelle Verzeichnis /wiki zeigen.

Nun muss noch der Apache das Gegenstück dieser Umsetzung liefern. Dazu kommt in die Apache-Konfirgurationsdatei (eventuell auch die Datei für einen virtuellen Host) folgende zusätzlichen Zeilen:

#These must come last, and in this order!
Alias /wiki /srv/www/htdocs/uwiki/index.php
Alias /index.php /srv/www/htdocs/uwiki/index.php

Falls man keinen Zugriff auf die Konfigurationsdatei hat, kann man auch mit der .htaccess arbeiten.

# first, enable the processing - Unless your ISP has it enabled
# already.  That might cause weird errors.
RewriteEngine on
 
# do the rewrite
RewriteRule ^wiki/?(.*)$ /uwiki/index.php?title=$1 [L,QSA]

Man muss dabei aufpassen, dass es das virtuelle Verzeichnis nicht schon real gibt. Ich hatte mir zusätzlich noch ein kleines Problem eingebaut, indem ich den ersten Text zum Thema Wiki einfach Wiki genannt hatte, ich habe ihn inzwischen in MediaWiki umbenannt.


Flash-Dateien

Ich wollte gern die Möglichkeit haben in Wiki-Seiten Flash-Filme einzubinden, die ich mit Captivate erstellt habe. Dazu waren mehrere Änderungen notwendig, die ich unter http://meta.wikimedia.org/wiki/Flash gefunden habe.

Zuerst habe ich die php-Datei geladen und unter extension/flash.php abgelegt. Ich musste aber ein paar Erweiterungen vornehmen, da ich sonst Warnungen über nicht initialisierte Variable bekam. Hier der Auszug ab Zeile 37:

function parseInput( $input ) {
   $this->tmp='';
   $this->codeEmbed='';
   $this->codeObject='';
   for($pos=0; $pos<strlen($input); $pos++) { // go through all arguments

Ich habe einfach die drei mittleren Zeilen mit den Initialisierungen ergänzt.

Dann habe ich die LocalSettings.php an Ende um folgende Zeilen ergänzt:

$wgTrustedMediaFormats= array(
  MEDIATYPE_BITMAP, //all bitmap formats
  MEDIATYPE_AUDIO,  //all audio formats
  MEDIATYPE_VIDEO,  //all plain video formats
  "image/svg",  //svg (only needed if inline rendering of svg is not supported)
  "application/pdf",  //PDF files
  "application/x-shockwafe-flash", //flash/shockwave movie
);
include('extensions/flash.php');
$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'swf' );
$wgVerifyMimeType= false;

Ein Teil der Zeilen dient dazu, den Flash Upload zu erlauben und ein weiterer Teil dazu die Erweiterung einzubinden.

Und wenn man dann in einer Seite eine Zeile wie:

<flash>file=Html-teil1.swf|width=600|height=450|bgcolor=#FDE742|scale=exactfit|quality=high|menu=false|loop=0</flash>

eingibt, dann läuft das Video ab.


EmbedVideo

Gelegentlich taucht der Wunsch auf, auch Videos in die Seite einzubinden, die z.B. bei YouTube liegen. Ich habe dafür die Extension EmbedVideo benutzt, die unter http://www.mediawiki.org/wiki/Extension:EmbedVideo zu finden ist.

Zur Installation wird wie immer die Datei EmbedVideo.php im Verzeichnis extensions abgelegt und dann mittels

require_once('extensions/EmbedVideo.php');

in der Datei LocalSettings.php aktiviert.

Soll nun konkret ein YouTube-Video eingebunden werden, so muss man nur dessen Kennung wissen. In den Quelltext der Seite schreibt man dann

{{#ev:youtube|QH6z9_3XIeY}}

Wobei QH6z9_3XIeY die Kennung des betreffenden Videos ist.

Man kann beim Aufruf auch eine Breitenangabe mitgeben:

 {{#ev:youtube|QH6z9_3XIeY|400}}