Eine Typo3-Installation auf einen neuen Server umziehen ist sehr tricky. Typo3 verzeiht nicht den geringsten Fehler und reagiert oft sehr empfindlich. Das folgende Script migriert Typo3 automatisch auf einen neuen Server und setzt alle nötigen Zugriffsrechte (File Permissions) für Typo3. Die verbleibende Handarbeit danach bleibt überschaubar.

Typo3 Serverumzug

Zuerst sollte man die technischen Voraussetzungen auf dem Zielserver prüfen. Das Wichtiges: Die PHP-Version muss stimmen. In der zur Typo3-Version passenden Doku finden sich genaue Vorgaben, was die PHP-Version angeht.

Wird die PHP-Version beim Provider nicht unterstützt, bleibt noch als letzter Ausweg einen Server zu wählen, der Docker-Container unterstützt. Hier hat man die Möglichkeit z.B. noch PHP 5.6 oder 7.0 weiter im Container zu betreiben.

Das Script zum Typo3-Serverumzug benötigt folgende Voraussetzungen:

  • Root-Zugang per SSH auf dem Zielserver.
  • LFTP muss auf dem Zielserver vorinstalliert sein. Mehr zu LFTP hier.
  • FTP-Zugang auf dem Quellserver.
#!/bin/bash
#
# Sync a Typo3 installation via FTP
#
# (c)2018 Hararld Schneider

# Config.start
#
SRC_HOST=DOMAIN.DE
SRC=/
DST=httpdocs
USR=USERNAME
PWD=PASSWORD
OWNER=USERNAME
GRP=psacln
GRPSRV=psaserv
#
# Config.end

MYPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

echo
read -p "Delete contents of ${DST} ? [Y/N] " prompt
if [[ $prompt == "n" || $prompt == "N" || $prompt == "no" || $prompt == "No" ]]; then
     echo "No action taken."
else
  echo "Deleting ..."
  rm -R ${DST}/* 2>/dev/null
  rm -R ${DST}/.* 2>/dev/null
fi

echo
echo "Syncing files ..."
echo
lftp ftp://${USR}:${PWD}@${SRC_HOST} -e "set ftp:ssl-allow no;set ftp:list-options -a;glob -d mirror --parallel=3 --use-cache --verbose --only-newer ${SRC} ${DST};quit"

echo
echo "Adjusting permissions - this can take a while ..."
find ${DST} -exec chown ${OWNER}:${GRP} {} \;
chown ${OWNER}:${GRPSRV} ${DST}

echo "Fixing permissions for T3 symlinks ..."
cd ${DST}/public_html
chown -h ${OWNER}:${GRP} t3lib typo3 typo3_src index.php
cd ${MYPATH}

Das Script um Typo3 auf einen neuen Server zu migrieren benötigt folgende Konfigurations-Variablen:

  • SRC_HOST: Der Name des FTP-Servers der alten Typo3-Installation
  • SRC: Der Pfad zur Typo3 Installation auf dem o.g. FTP-Server
  • DST: Der Pfad zu Typo3 auf dem Zielserver
  • USR: Der FTP-User der alten Typo3-Installation
  • PWD: Das Passwort des o.g. Users

Zur automatischen Anpassung der Typo3 Zugriffsrechte (File Permissions) müssen folgende Variablen gesetzt werden:

  • OWNER: Der Eigentümer der Typo3-Installation auf dem Zielserver.
  • GRP: Die Benutzergruppe auf dem o.g. Server. Unter Plesk ist das ‘psacln’
  • GRPSRV: Die Gruppe für Serverdienste auf dem o.g. Server: Unter Plesk ist das ‘psaserv’

Typo3 auf neuen Server umziehen: Nacharbeiten

Nach Umzug aller Ordner und Files, kann die Typo3-Datenbank ebenfalls elegant per Skript migriert werden. Mehr zum Umzug von MySQL hier.
Haben sie die Zugangsdaten zur Typo3-Datenbank geändert, so sind diese in der Datei typo3conf/localconf.php anzupassen.

Als nächstes meldet man sich am Typo3 Backend an und leert den Cache von Typo3.
Danach sollte auch das Typo3-Frontend klaglos anspringen :-)