ispCP hat ein sehr strengen Migrationspfad, den man unbedingt einhalten sollte. Vor allem ist es wichtig, aktuelle Sicherheitsupdates einzuspielen. Wir standen kürzlich vor der Herausforderung, eine ältere ispCP Installation von einem Debian System mit auslaufendem Support auf einen Ubuntu Server zu migrieren.
Dabei war das Problem, das beim Wechsel des Betriebssystems auch die PHP-Version geupdatet wird, was ein Migrationspfad ziemlich umständlich machte. Da ispCP 1.0.5 kein PHP 5.3 unterstützt und ispCP 1.0.7 PHP 5.3 verlangt.
Im Nachfolgenden wollen wir ein paar technische Hinweise zu unserem Vorgehen geben. Natürlich kann man keine komplette Migrationsanleitung verfassen, weil bei so einem Umzug noch ein paar mehr Anforderungen zu beachten sind, welche vom grundlegenden Setup des Servers abhängen.
Mit ispCP kommt in der aktuellen Version ein Backup/Restore-Script im Ordner /var/www/ispcp/contrib/backup-restore/, dies kann man mit ein paar Modifikation auch für ispCP 1.0.5 verwenden. Unser generelles Vorgehen war dabei wie folgt:
- Neuen Server aufsetzen
- Auf dem neuen Server ispCP installieren.
- Im neuen ispCP Admin und Reseller konfigurieren
- Alle Daten mit rsync kopieren
- Modifiziertes Backup ausführen
- rsync wiederholen
- Modifiziertes Restore ausführen
- DNS auf neuen Server umleiten
Welche Modifikation sind für das backup notwendig?
includes/BackupPackage.php:createDomainPackage() |
sollte man sich anschauen und „return true;“ am Anfang hinzufügen. Damit wird beim Export das Verzeichnis nicht gepackt und verschlüsselt. Das gleiche gilt natürlich für das Restore-Script, welches prüft ob ein gepacktes Paket vorhanden ist und es enpacken will, diese Funktion muss auch deaktiviert werden. Hinweis: nach ausführen des Exportes liegen alle Passwörter als Klartext in einer XML-Datei. Wenn beim Backupen eine PHP-Klasse nicht gefunden werden kann, dann hilft hier kopieren und umbenennen, damit das Script durchläuft.
Mit folgenden Python-Script kann man alle Kunden auf einmal exportieren:
import os.pathimport os filelist = os.listdir("/var/www/virtual") i = 0 while ( i < len(filelist)): if filelist[i][-3:] != "log": print "Execute backup for ", filelist[i] cmd = 'php backup.php ',filelist[i],' do' os.system(''.join(cmd)) i = i + 1 |
Das Script kann so nicht für dem Import genutzt werden, aber mit kleinen Anpassung funktioniert dies auch.
Dies sind natürlich längst nicht alle Punkte, die bei einer Migration beachtet werden müssen, sondern soll nur ein kleiner Leidpfaden sein an dem man sich orientieren kann.
Falls Sie planen ihre Hostingumgebung in ähnlicher Form zu migrieren, nehmen sie gerne Kontakt mit uns auf.