Typo3 auch ohne Core-Updater schnell und einfach aktualisieren

Mit zwei kostenlosen PHP-Skripten können Sie schnell und einfach ein Typo3-Update einspielen, wenn dies über den Core-Updater nicht möglich ist. Typo3 bietet seit Version 6.2 eine sehr komfortable Update-Möglichkeit, um kleine Bugfixes zu installieren: Das Update erfolgt im Backend ganz einfach per Mausklick innerhalb von wenigen Minuten. Voraussetzung dafür ist jedoch, dass der Webhoster Symlinks unterstützt. Manche Webhoster wie z.B. Domainfactory, all-inkl.com oder JWeiland unterstützen aus Sicherheitsgründen keine Symlinks auf Dateien. Hier werden zwei PHP-Skripte vorgestellt, die zusammen fast dasselbe können.
Anzeige



Der Screenshot zeigt, wie Sie das Core-Update in typo3 starten. Eine ausführliche Anleitung hierzu finden Sie im Artikel "Typo3 Update installieren - Bugfix und Security Releases für eine Typo3 Version einspielen".

I. Der Idealfall: Ihr Webhoster erlaubt Symlinks auf Dateien und Verzeichnisse

Entscheidend für die Möglichkeit die Updates komfortabel im Backend zu installieren ist, dass einige grundlegende Voraussetzungen erfüllt sind. Die detaillierten Voraussetzungen für ein Core-Update wie beispielsweise von 7.6.3 auf 7.6.4 sind:

  • Funktioniert nur unter Unix und MacOS (da hier Symlinks vorhanden sind)
  • Das Verzeichnis typo3_src muss ein Symlink sein
  • Dieser Symlink muss schreibbar (und löschbar) durch den Webserver Benutzer sein
  • Das „Document Root“ muss schreibbar sein
  • Der Ebene überhalb von „Document root“ ("../") muss schreibbar sein (damit neue Verzeichnisse parallel angelegt werden können)
  • Das Systemkommando "tar" muss verfügbar sein

Quelle: http://www.lobacher.de/files/TYPO3-CMS-6.2-LTS-Die-Neuerungen-Lobacher.pdf, Seite 21.

Diese Voraussetzungen werden von fast allen Webhostern erfüllt, so dass ein Update innerhalb von 2-3 Minuten erledigt werden kann.

Allerdings bieten nicht alle Webhoster die Voraussetzungen für den Core-Updater: Unterschieden werden muss zwischen Symlinks auf Dateien und auf Verzeichnisse. Wirklich notwendig sind jedoch für Typo3 wie oben erläutert nur die Symlinks auf Verzeichnisse. Normalerweise wird bei der Installation von Typo3 ab Version 6.2 auch ein Datei-Symlink "index.php" eingerichtet. Allerdings bieten einige Anbieter (z.B. Domainfactory, All-inkl oder JWeiland) nicht alle Arten von Symlinks, sondern nur Symlinks für Verzeichnissse. Typo3 gibt zwar eine Fehlermeldung wie z.B. "Path /index.php is not a link" aus, aber diese Meldung verursacht so gut wie nie praktisch ein Problem. In nur ganz seltenen Fällen kann es mit dieser Lösung ein Problem geben, wie zum Beispiel mit der Extension checkmysite.

 

II. Mit zwei kostenlosen PHP-Skripten den Core-Updater schnell und einfach nachrüsten

Falls Ihr Webhoster keine Symlinks auf Dateien zulässt, streikt leider auch der Core Updater. Sie sollten daher nun so vorgehen:

1. Bei https://www.ka-mediendesign.de/blog/post/typo3-installation-via-ftp-ohne-stundenlanges-hochladen/ finden Sie folgendes Skript:

<?php
$url  = 'http://prdownloads.sourceforge.net/typo3/typo3_src-7.6.4.tar.gz?download';
$filename = 'typo3.tar.gz';
 
// Download File -> typo3.tar.gz
$path = __DIR__.'/'.$filename;
$ch = curl_init($url);
$fp = fopen($path, 'w');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_exec($ch);
curl_close($ch);
fclose($fp);
print 'TYPO3 archive downloaded...<br />';
 
// Unpack File
system('tar xzf typo3.tar.gz');
print 'TYPO3 archive extracted...<br />';
 
// Delete Tarball
unlink($path);
print 'TYPO3 archive removed...<br />';
 
print '<b>Completed!</b>';
?>

Mit diesem machen Sie folgendes:

a) Sie tragen ganz oben bei $url ein, welche Typo3-Version Sie gerade verwenden, z.B. 7.6.4, also prdownloads.sourceforge.net/typo3/typo3_src-7.6.4.tar.gz und speichern es als Datei typo3download.php ab.

b) Sie laden die Datei ins Root-Verzeichnis Ihres Servers, setzen die Rechte z.B. mit Filezilla auf "777" und und führen dann die Datei typo3download.php aus

c) Anschließend finden Sie innerhalb weniger Minuten entpackt z.B. das Verzeichnis /typo3_src-7.6.4 im Rootverzeichnis.

 

III. Die Symlinks auf die neue Typo3-Version umlegen

  1. Nun müssen Sie nur noch die Symlinks anpassen, was Sie bequem mit diesem PHP-Skript erledigen können:

    <?php
        
        $newTypo3Source = 'typo3_src-7.6.4';
        
        echo '<strong>Die alten Symlinks:</strong><br />';
        echo readlink('index.php').'<br />';
        echo readlink('typo3').'<br />';
        echo readlink('typo3_src').'<br />';
        
        /* Für manuelle Updates */
        unlink('typo3_src');
        symlink($newTypo3Source, 'typo3_src');
        
        /* Für manuelle Installationen */
        #symlink($newTypo3Source, 'typo3_src');
        #symlink('typo3_src/typo3', 'typo3');
        #symlink('typo3_src/t3lib', 't3lib');
        #symlink('typo3_src/index.php', 'index.php');
        
        echo '<strong>Die neuen Symlinks:</strong><br />';
        echo readlink('index.php').'<br />';
        echo readlink('typo3').'<br />';
        echo readlink('typo3_src').'<br />';
    ?>

  2. Erstellen Sie eine symlink.php-Datei mit diesem Code, wenn Sie von Version 7.6.3 auf 7.6.4 updaten wollen. Wenn es um eine höhere Version geht, müssen Sie oben $newTypo3Source = 'typo3_src-7.6.4'; entsprechend ändern.
  3. Laden Sie die php-Datei auf Ihren Server, setzen die Rechte z.B. mit Filezilla auf "777", rufen Sie diese Datei im Browser auf.
  4. Nun noch im Typo3-Backend einloggen und alle Caches löschen.
  5. Vergessen Sie nun nicht die Rechte der beiden PHP Dateien zu beschränken, z.B. auf "640".
  6. FERTIG!

 

Fazit: Typo3 lässt sich auch ohne Core-Updater schnell und einfach aktualisieren.

Die oben beschriebenen PHP-Skripte sind zwar nicht ganz so einfach wie der Core-Updater, dennoch ist ein Typo3-Update hiermit einfach und schnell machbar. Hierfür benötigen Sie nicht einmal einen Shell-Zugang (SSH), sondern nur einen FTP-Client wie z.B. Filezilla