Wartung, Sicherung und Migration von TYPO3-Installationen: TYPO-Installationen verstehen
Eine TYPO3-Installation besteht aus zwei Teilen: der Datenbank und den Dateien im Dateisystem. Um ein vollständig reproduzierbares Abbild der Installation zu erzeugen, müssen beide Bereiche gesichert werden. Damit die Daten vollständig gesichert werden können, wird hier die Organisation der Dateien einer TYPO3-Installation anhand eines Beispiels erläutert. Das folgende Tabelle listet die Dateien einer möglichen TYPO3-Installation auf:
Dateiname | Typ | Linkziel |
clear.gif | Datei | |
fileadmin | Verzeichnis | |
index.php | Softlink | tslib/index_ts.php |
media | Softlink | tslib/media |
showpic.php | Softlink | tslib/showpic.php |
t3lib | Softlink | typo3_src/t3lib |
tslib | Softlink | typo3/sysext/cms/tslib |
typo3 | Softlink | typo3_src/typo3 |
typo3_src | Softlink | typo3_src-4.0 |
typo3_src-4.0 | Verzeichnis | |
typo3conf | Verzeichnis | |
typo3temp | Verzeichnis | |
uploads | Verzeichnis |
Die Besonderheit an dieser Struktur ist, dass mit Softlinks gearbeitet wird (nur unter Unix/Linux möglich), die ein späteres Update der TYPO3-Installation deutlich erleichtern. Es muss dann nur der „typo3_src-x.x.x“ Ordner hinzugefügt werden und der Link „typo3_src“ auf das neu erstellte Verzeichnis „typo3_src-x.x.x“ umgestellt werden.
Die notwendigen Dateien befinden sich in folgenden Verzeichnissen: |
fileadmin: Dateien, die Benutzer mit Zugang zur Dateiliste auf den Server kopiert haben. |
typo3conf: Die Konfigurationen der TYPO3-Installation und lokal installierte Extensions. |
uploads: Diverse von Benutzern (Backend und Frontend) hochgeladene Dateien. |
typo3_src-x.x.x: TYPO3 Source-Verzeichnis |
Bei mehreren vorhandenen TYPO3-Sourcen kann die zurzeit aktive ermittelt werden, indem abgelesen wird, auf welches Verzeichnis der Link „typo3_src“ verweist.
Die Dateien sichern
Um die entscheidenden Dateien in einem tar-Archiv zu sichern, kann in dem Verzeichnis, in dem sich die Ordner „fileadmin“, „uploads“ und „typo3conf“ befinden, folgender Befehl ausgeführt werden:
tar -czf backup_dateien_datum.tar.gz fileadmin typo3conf uploads
Listing 1
Ist die TYPO3-Installation wie im gezeigten Beispiel aufgebaut, genügt zum Archivieren des TYPO3-Quellcodes das folgende Kommando:
tar -czf backup_typo3source4.0_datum.tar.gz typo3_src-4.0
Listing 2
Damit sind alle Dateien aus dem Dateisystem archiviert, die für eine identische Kopie der TYPO3-Installation benötigt werden.
Die Dateien einspielen
Beim Einspielen der Dateien in das Dateisystem ist Vorsicht geboten. Wenn der Account gesichert wurde, um im selben Account wieder eingespielt zu werden, bleibt der Aufwand überschaubar. Die Verzeichnisse müssen nur mit denen im Archiv überschrieben werden.
tar -xzf archivdatei.tar.gz ziel/pfad/
Listing 3
Gegebenenfalls müssen danach die Dateirechte der Dateien auf die vorherigen Einstellungen gesetzt werden, also ist es ratsam die Rechte der Originaldateien zu notieren.
Wenn das Backup auf einem anderen Account wieder eingespielt werden soll, ist etwas mehr Fingerspitzengefühl geboten. Vor dem Überspielen ist es empfehlenswert, eine Sicherung der vorhandenen Daten anzulegen. Die Datei „typo3conf/localconf.php“ enthält die Konfiguration von TYPO3 und sollte daher unbedingt vorher gesichert werden. In ihr werden zum Beispiel die Zugangsdaten zur Datenbank und serverspezifische Einstellungen wie die imageMagick-Konfiguration gespeichert. Wird die TYPO3-Installation auf einen anderen Server/Account kopiert, muss in der Regel die Konfiguration angepasst werden.
TIPP |
Wenn Sie eine TYPO3-Installation mit einer anderen überschreiben, sichern Sie vorher die Datei „typo3conf/localconf.php“. Diese können Sie in wichtigen Punkten übernehmen, was das Einrichten der Konfiguration für die neue Installation um einiges erleichtert |
Die Datenstruktur der Datenbank
Alle Tabellen, die mit ! gekennzeichnet sind, enthalten wichtige Daten, die gesichert werden müssen.
Tabellenname | Funktion | Typ |
be_groups | Backend-Benutzergruppen | ! |
be_sessions | Backend-Sessions | t |
be_users | Backend-Benutzer | ! |
cache_hash | Cache | t |
cache_imagesizes | Cache | t |
cache_md5params | Cache | t |
cache_pages | Cache | t |
cache_pagesection | Cache | t |
cache_typo3temp_log | Cache | t |
fe_groups | Frontend-Benutzergruppen | ! |
fe_sessions | Frontend-Sessions | t |
fe_session_data | Frontend-Sessions | t |
fe_users | Frontend-Benutzer | ! |
pages | Seiten(-struktur) | ! |
pages_language_overlay | Seiteninfos in anderen Sprachen | ! |
static_template | mitgelieferte Templates | s |
static_tsconfig_help | TS Quick Reference | s |
sys_be_shortcuts | Shortcuts im Backend | ! |
sys_domain | Domaineinträge | ! |
sys_filemounts | Filemounts | ! |
sys_history | Historie von Inhaltselementen | ! |
sys_language | Sprachen fürs Frontend | ! |
sys_lockedrecords | bearbeitete Dokumente | t |
sys_log | Logging | z |
sys_note | Notizen | z |
sys_preview | Previews | ! |
sys_refindex | Referenzen | z |
sys_template | (Typoscript) Templates | ! |
sys_workspace | Workspaces | ! |
tt_content | Inhaltselemente | ! |
tx_impexp_presets | Extensiontabelle Import/Export | ! |
tx_rtehtmlarea_acronym | Extensiontabelle htmlArea-RTE | ! |
Legende |
z: zusätzliche Informationen: nicht unbedingt nötig |
t: temporäre Daten: müssen nicht gesichert werden |
s: statische Daten: lassen sich über das Installtool erstellen, brauchen also nicht kopiert werden |
! = Tabellen deren Inhalte benötigt werden (wenn Funktionen nicht benutzt werden oder die Tabellen leer sind, ist es möglich, einige dieser Tabellen wegzulassen) |
In vielen Fällen sind mehr Tabellen vorhanden als im oben gezeigten Beispiel, da TYPO3-Extensions oft eigene Tabellen für ihre Daten mitbringen. Extension-Tabellen sind mit einem „tx_“ gekennzeichnet.
Die Datenbank archivieren und einspielen
Die Daten aus der Datenbank lassen sich als SQL-Dateien exportieren. Diese SQL-Dumps können in andere SQL-Datenbanken eingespielt werden. Zum Exportieren der Daten aus einer mySQL-Datenbank eignen sich die Tools „phpmyadmin“ und „mysql“.
Für das Erstellen eines Dumps stehen viele Optionen zur Verfügung. Die Option „–add-drop-table“ zum Beispiel sorgt dafür, dass beim Einspielen eines Dumps schon vorhandene Tabellen zuerst gelöscht und dann neu angelegt werden, damit keine alten Daten bestehen bleiben. Diese Funktion beim Wiedereinspielen eines Backups ist sehr sinnvoll.
TIPP |
Bei einigen Konfigurationen in Bezug auf Zeichensatz/Encodings (etwa UTF8) ist es ratsam, den Im-/Export zu testen. Es ist wichtig zu wissen, welche Einstellungen Sie beim Export setzen müssen, damit der Dump sich auch wieder einspielen lässt. Bei Zeichensatz-Problemen kann versucht werden, mit dem Linux-Tool „recode“ den Zeichensatz des Dumps zu konvertieren. Außerdem sollte über die MySQL-Konfigurationsdateien geprüft werden, mit welchen Encodings der MySQL-Client arbeitet. Wenn die Daten schon importiert sind, aber nicht richtig angezeigt werden, hilft eventuell auch die TYPO3-Extension „UTF8 Site Converter“ (convert2utf8). |
Für das Arbeiten mit der TYPO3-Datenbank sind drei Informationen notwendig: Datenbankbenutzer, Datenbankpasswort und Datenbankname. Diese Informationen können aus der „localconf.php“ einer bestehenden TYPO3-Installation gewonnen werden. Zur Sicherung der Datenbank genügt folgender Shell-Befehl:
mysqldump -udbbenutzer -p –add-drop-table datenbankname > typo3_datenbank_datum.sql
Listing 4
Nachdem der Inhalt der gesamten Datenbank in die SQL-Datei exportiert wurde, können die Daten wieder in die Datenbank eingespielt werden:
mysql -udatenbankbenutzer -p datenbankname < typo3_datenbank_datum.sql
Listing 5
Datenbanktools und Extensions
Alternativ kann auch das bekannte MySQL-Webfrontend „phpmyadmin“ für das Exportieren und Importieren eines MySQL-Dumps genutzt werden, was immer dann interessant ist, wenn man ohne Shellzugriff arbeiten muss. Da es sich bei „phpmyadmin“ um ein PHP-Skript handelt, ist diese Methode ab einem gewissen Datenvolumen nicht mehr praxistauglich.