Linux Server kopieren – Einstellungen
In den letzten beiden Teilen des Artikels habe ich bereit gezeigt wie man unkompliziert Datenbank und Source Code von einem Server auf einen anderen Server kopieren kann. In diesem letzten Teil geht es um Einstellungen und um virtuelle Server. Generell sind alle Einstellungen die beim Hoster getroffen werden und nicht im Source Code hinterlegt sind immer das größte Problem beim Serverwechsel. Ich zeige euch worauf ihr achten müsst und welche Alternativen es gibt.
Einstellungen übernehmen
Unter dem Begriff Einstellungen verstehe ich alles was am Server definiert wurde um den Source Code lauffähig zu machen. Im einfachsten Fall sind das zum Beispiel im Fall von PHP die PHP Version und die diversen Erweiterungen, Bibliotheken für spezielle Anforderungen oder im einfachsten Fall die installierte PHP Version. Beim LAMP Server ist die zentrale Einheit der Webserver, welcher zusätzlich zum Standardsetup mit weiteren Modulen erweitert werden kann (PHP ist eines dieser Module).
Generell setzen viele Hoster sehr ähnliche Einstellungen ein. Der überwiegende Teil einen Webserver mit PHP. Diese sind für Standardsoftware wie WordPress vorkonfiguriert, unterstützen somit zum Beispiel auch Rewrites (ein weiteres Modul für den Apache Webserver). Leider sind solche minimalen Unterschiede der Konfiguration selten sofort erkennbar. Diese werden meistens durch den Kunden berichtet und beanstandet. Darauf muss man achten:
- Programmversionen
PHP läuft bei vielen Hostern nicht auf der aktuellsten Version. Das hat unterschiedliche Gründe, meistens weil die darauf ausgeführte Software auch nicht immer aktuell ist. Generell sollte man nicht nur prüfen ob eine Webapplikation läuft, sondern gezielt nach bekannten Unterschieden der Versionsnummern testen. Das ist leider nur durch sehr gute Kenntnis des Programmcodes möglich. Im einfachsten Fall sollte man zumindest im Falle von PHP die Ausgaben von PHP Info vergleichen und im Zweifelsfall eine Supportnachricht an den Hoster schicken. - Webserver Module
Der Webserver des Hosters hat in der Regel nur jene Module installiert, die man für die dort angebotene Standardsoftware benötigt. Sobald man zusätzliche Funktionalität benötigt kann man diese im besten Fall in einer Weboberfläche aktivieren oder zur Not über den Support anfordern. Ein Beispiel dafür ist die IONCube Erweiterung, durch die verschlüsselter PHP Code ausgeführt werden kann. - Bibliotheken
Webserver oder das Betriebssystem selbst können durch Bibliotheken in der Funktion erweitert werden. Manchmal benötigt man für Spezialsoftware eine bestimmte Bibliothek oder sogar eine bestimmte Version der Bibliothek. In diesen Fällen benötigt man fast immer einen Root Server, da die Hoster das kaum für einen Server einstellen können auf denen mehrere Kundenaccounts liegen.
In jedem Fall gibt es für den Umzug nur eine goldene Regel: „Testen, testen, testen!“. Falls man ein Projekt öfters umziehen will oder muss lohnt sich die Erstellung eines Testskripts, welches alle Anforderungen an den Webspace prüfen kann. Solche Skripte findet man immer wieder mal bei Software die häufig eingesetzt wird. Als Beispiele fällt mir da Foren Software ein.
Alternativen
Wirkliche Alternativen gibt es eigentlich nicht. Es besteht immer ein Risiko, dass nach einem Umzug auf einen neuen Server Teile der Software nicht oder nicht richtig funktionieren. Das sollte man sich bei der zeitlichen und finanziellen Planung eines solchen Unterfangens immer vor Augen führen.
Htaccess
In einer Htaccess Datei kann man Einstellungen des Webservers oder von Skriptsprachen wie PHP anpassen. Das funktioniert in dem man vordefinierte Variablen neu setzt. Man kann beispielsweise die maximale Laufzeit eines PHP Skripts wie folgt verändern:
set_time_limit(3600);
Nun würden alle PHP Skripte die sich in der Ordnerhierarchie unterhalb oder auf gleicher Höhe wie die .htaccess Datei befinden maximal 1 Stunde lange ausgeführt. Damit wird die eigentliche Einstellung die in der php.ini Datei am Server definiert wird überschrieben.
Durch diese Methode kann man viele Einstellungen anpassen, aber nicht alle. Diese .htaccess Dateien sind aber eine gute Lösung um bei sehr spezifischen Veränderungen einer Applikation an die Standardeinstellungen diese auch bei einem Umzug garantiert mitzunehmen!
Virtuelle Server
Meiner Meinung nach die beste Möglichkeit einen Server umzuziehen sind virtuelle Server. Wie in meinen Artikeln zu VirtualBox ist es relativ einfach einen eigenen virtuellen Linux-Server zu erstellen. Diesen kann man selber konfigurieren und anpassen wie man möchte. Sollte es irgendwann mal zu einem Umzug kommen kann man sich diese virtuelle Maschine 1:1 kopieren und sie wird am neunen Webspace genau so laufen wie bisher.
Neben VirtualBox gibt es noch zahlreiche andere Virtualisierungsprogramme. VMWare oder QEMU nur als Beispiele genannt. Der virtuelle Server liegt physisch als Datei in einem bestimmten Format vor und kann meistens recht einfach in andere Formate konvertiert werden. Somit kann man den virtuellen Server auch auf ein fremdes Virtualisierungsprogramm übernehmen.
Der Nachteil an virtuellen Servern ist, dass man dafür fast immer einen Root Server benötigt. Hoster bieten dafür selten Pakete an, im schlimmsten Fall muss man sich die Arbeitszeit eines Supportmitarbeiters für den Umzug leisten.
Fazit
Übersiedelt man einen Server, so muss man sich zuvor Gedanken machen ob die Einstellungen am neuen System auch den Anforderungen entsprechen und ob man diese so einfach anpassen kann. Hat man diese geprüft sollte man trotzdem nochmal alles testen, da in den wenigsten Fällen der Umzug komplett problemlos funktioniert. Auch wenn man lediglich vergisst den Cronjob am neuen System anzulegen. Die sicherste Variante sind meiner Meinung nach virtuelle Server.