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.
Hey, danke für die ausführliche Würdigung! 🙂
Die Lizenz des Skriptes ist übrigens die MIT-Lizenz, eine sehr liberale Lizenz, die praktisch jegliche Verwendung erlaubt, unter den Bedingungen, dass der Copyright-Hinweis erhalten bleibt und dass der Autor nicht für Probleme haftbar gemacht werden kann. (Ein Schelm, der Böses dabei denkt … ;-))
Hi,
cooler artikel, danke fuer das script.
ich habe es direkt mal auf meiner vps ausprobiert, bekomme aber leider das script nicht aufgerufen.
im root ordner darf ich nichts neues erstellen.
habe daher alles in den httpdocs ordner verschoben und einen ordner update erstellt. darein die txt datei minus der erweiterung sowie eine angepasste version der installations datei.
ich habe auch plesk und unter „setup“ habe ich „sh“ fuer shell zugriff eingestellt. in der console kann ich das script wpupdate irgendwie aber nicht ausfuehren. hast du noch eine idee?
Hallo Stefan, wenn du ein V-Server hast sollte es dir möglich sein im root Verzeichnis zu schreiben. Natürlich solltest du dazu root-User sein. Das Update als root durchzuführen macht bei mir auch Sinn, da andere User (zumindest per default bei mir) keine Schreibrechte für andere Domain-Verzeichnisse haben.
Wenn dies allerdings nicht der Fall ist sollte es meine Meinung nach Funktionieren. Natürlich musst du dazu das WORKDIR=“/dein/absoluter/pfad/wpupgrade/“ richtig setzen. Getestet habe ich es nicht, hoffe es klappt?