Beim Treffen der Münchner TYPO3 Usergroup gestern habe ich anhand der MTUG Webseite gezeigt, wie mit einem Shell Script ein Update des TYPO3 Core gemacht werden kann. Da das Script auf größeres Interesse gestoßen ist, möchte ich es hier kurz vorstellen.
Bereits vor ein paar Jahren bin ich auf das TYPO3 mass upgrade script von Michiel Roos gestoßen. Dieses Script ist vor allem darauf ausgelegt, viele TYPO3 Instanzen, die auf einer einzelnen Maschine liegen, mit einem Scriptaufruf zu aktualisieren.
Inspiriert durch dieses Script habe ich dann ein eigenes Shell Script geschrieben, dass auch Teile des Scripts von Michiel Roos enthält. Mein Script ist für Updates von einzelnen TYPO3 Instanzen ausgelegt. Was macht das Script genau:
- Runterladen des gewünschten Source von typo3.org
- entpacken des Source
- Source Tarball wieder löschen
- .htaccess Dateien für mod_expires durch umbennnen aktivieren (sofern noch nötig)
- alten Symlink im Dummy Verzeichnis löschen
- neuen Symlink anlegen
- index.php aus Source Verzeichnis in Dummy Verzeichnis kopieren (ist bei meinem Hoster nötig, da dort keine Symlinks auf Dateien unterstütz werden)
- neuen Encryption Key generieren
- Cache Tabellen in der Datenbank leeren
- temp_CACHED_* Dateien aus /typo3conf löschen
Das Update Script setzt einen SSH Zugang zum Webserver voraus. Nach dem Aufruf werden interaktiv die nötigen Daten abgefragt:
Vor der Verwendung des Scripts sind unbedingt Backups von Dateisystem und Datenbank anzufertigen! Die genaue Verwendung ist im Quelltext dokumentiert. Generell sollte ein Basiswissen von Shell Befehlen vorhanden sein um zu verstehen, was das Script genau macht. Der Einsatz des Scripts erfolgt auf eigene Gefahr.
Download: t3update_0.4.3.zip
Das Script muss nach dem Download noch ausführbar gemacht werden:
chmod +x t3update.sh
Der Aufruf des Scripts erfolgt dann so:
./t3update.sh
Für die Zukunft könnte ich mir vorstellen, ein simples Backup in das Script zu integrieren. Ich bin jetzt aber vor allem an eurer Meinung interessiert. Nutzt ihr bereits eigene Shell Scripten und welche Ansätze verfolgt ihr? Was für weitere Features wären sinnvoll? Ich bin gespannt auf eure Kommentare!