Dies ist der erste aus einer Reihe von Artikeln, die einige hilfreiche Tipps zum Thema Webadministration enthalten. Die Artikel basieren auf meiner eigenen Erfahrung und sind hoffentlich bei den eigenen Vorhaben behilflich. Sollten sich Fragen ergeben, dann bin ich über das Kontaktformular zu erreichen. Los geht es mit dem ersten Artikel.

Ein Projekt, das ich betreue, nutzt Mediawiki. Dies ist die Software, die unter anderem für Wikipedia genutzt wird. Leider bietet sie keine so komfortable Update-Funktion wie z.B. Joomla. Da ein Update immer mehrere Befehle auf der Kommandozeile erforderte, habe ich ein Skript für diese Aufgabe erstellt. Es läd die neue Mediawiki-Version auf den Server, fertigt ein Backup der alten Installation an und führt dann das Update selbstständig durch. Ich konnte das Skript bei einigen Versionen testen und es hat bis jetzt immer funktioniert. Da ich mir sonst die Befehle immer neu raus suchen musste, erspare ich mir so viel Arbeit und das Update ist in ein bis zwei Minuten erledigt.

Das Skript benötigt einige wenige Anpassungen an den eigenen Server. Der Pfad zur Wiki-Installation muss gesetzt werden. Außerdem müssen die Namen der Datenbank und des entsprechenden Passwortes gesetzt werden. Die Dateien werden auch gleich dem entsprechenden Nutzer übertragen. Der Aufruf hierfür muss auch angepasst werden. Zu guter Letzt muss der ausführende Nutzer des Skriptes in dem Verzeichnis der Wiki und des Skriptes Schreibrechte haben!

#!/bin/sh
# Automatisches Mediawiki-Update
echo Automatisches Mediawiki-Update
if [ $# -eq 0 ]
then
echo Bitte url des Updates angeben!
echo Abbruch...
exit 1
fi
echo Mediawiki-Update laden
filename=$(basename "$1") #Dateiname des Archives speichern
wget $1 #Datei von den Mediawiki-Servern laden
echo Backup der Installation anlegen
backup_date=$(date +"%Y_%m_%d") #Datum abspeichern (YYYY-MM-DD)
backup_name=WIKIBACKUP_
tar -pczf "$backup_name$backup_date.tar.gz" path/to/wiki/ #Backup
echo Backup der Datenbank anlegen
mysqldump -u DB_USER -pDB_PASS --add-drop-database --add-drop-table --databases DB_WIKI --result-file="$backup_name$backup_date.sql" #SQL-Backup
echo Update-Archiv entpacken und an Zielort kopieren
tar -zxvf "$filename" #Entpacken
cp -vfr ./$(basename $filename .tar.gz)/* path/to/wiki/ #In Zielordner kopieren
chown -R WWW_USER path/to/wiki/ #Verzeichnisrechte anpassen
chgrp -R WWW_GROUP path/to/wiki/
echo Datenbank aktualisieren "(update.php)"
php path/to/wiki/maintenance/update.php --quick #Wiki-Datenbank updaten
echo Temporäre Dateien aufräumen
rm -rf $(basename $filename .tar.gz)
rm $filename
exit 0