Wer gleichzeitig mehrere WordPress-Installationen upgraden möchte, kann dies elegant mit dem Shell-Skript von Alex Günsche erledigen. Voraussetzung dazu ist Shell-Zugriff und root-Rechte für den Server. Wer dies nicht zur Verfügung hat und nur eine einzelne Installation aktuell halten möchte, sollte das InstantUpgrade Plugin von Alex Günsche zu testen.
Das Skript lädt jeweils die aktuellste Version von WordPress herunter, entpackt diese und aktualisiert die angegebenen Verzeichnisse. Um das Skript zu verwenden sollte man allerdings genau wissen was man tut und vorher ein Backup erstellt haben. Ich habe es zudem zuerst an meiner Beta-Installation getestet. Folgende Schritte sind durchzuführen:
- Als Root einloggen und in das Verzeichnis /root/ wechseln (
# cd /root
)
- Ein Verzeichnis namens wpupgrade anlegen (
# mkdir wpupgrade
)
- In diesem Verzeichnis das Skript (s.u.) z.B. unter dem Namen
wpupdate
speichern
- Das Skript mit ausführbar machen (
# chmod +x ./wpupdate
)
- Ein Verzeichnis mit allen benötigten Sprachdateien anlegen (
# mkdir languages
)
Die aktuelle deutsche Sprachdatei findet man bei WordPress-Deutschland
- Die Datei installations anlegen und dort die absoluten Pfade zu den einzelnen WordPress-Installationen und den Url folgendermaßen angeben:
/srv/www/vhosts/domain.de/httpdocs/=http://domain.de/
/srv/www/vhosts/domain2.de/httpdocs/=http://domain2.de/
- Das Skript ausführen (
# ./wpupdate
)
Hier das Skript zum Download: wpupdate.
Hinweis: Das Skript funktioniert mit der aktuellen WordPress-Dateistruktur und ich habe es zum Update auf Version 2.2.1 verwendet. Bitte die Lizenzhinweise im Header beachten.
Update:
Beim Update der von mir verwalteten Weblogs habe ich einen Fehler beim chown der kopierten Dateien erhalten. Die neue WordPress-Version wird vom Skript mit den Berechtigungen des root-User kopiert. Deshalb müssen am Ende der Besitzer und die Gruppe korrigiert werden. Damit das Skript vollständig auf meinem Server mit einer Linux Suse 10.0 Installation und Plesk 8.2 funktioniert waren dazu folgende Anpassungen notwendig.
In Zeile 67 & 68:
USER=$(ls -l ${DIR}/wp-config.php | cut -f 4 -d ' ')
GROUP=$(ls -l ${DIR}/wp-config.php | cut -f 5 -d ' ')
In Zeile 86:
chown -R ${USER}:${GROUP} ${DIR}/*
Die Anpassungen in Zeile 67 & 68 bewirken, dass der richtige Benutzer und die richtige Gruppe zugeordnet werden. Mit der Anpassung in Zeile 86 wird festgelegt, dass nur Dateien innerhalb des WordPress Installationsverzeichnisses angepasst werden.
Um festzustellen ob tatsächlich der benötigte Benutzer und die richtige Gruppe eingesetzt wird, können folgende Befehle im WordPress-Verzeichnis ausgeführt werden. Dabei wird jeweils der Benutzer und die Gruppe ausgegeben:
# ls -l wp-config.php | cut -f 4 -d ' '
# ls -l wp-config.php | cut -f 5 -d ' '
Vielen Dank an Alex Günsche für den netten live Support bei der Anpassung an meine Bedürfnisse.