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