Wie migriere ich meine lokal entwickelte Site auf einen Server im Internet?

Christa Tabara
2007-06-27 00:50
1. Die Datenbank (bzw. deren Inhalte) muss kopiert werden. Das geht entweder über phpMyAdmin oder mit einem sogenannten Dump.

1.1. Daten aus der lokalen Datenbank holen

1.1.1. Kopieren mit phpMyAdmin
Dazu muss in phpMyAdmin erst die Datenbank ausgewählt werden. Dann auf 'Exportieren' gehen und dort folgende Sachen auswählen:
'Alle auswählen' (damit werden alle in der Datenbank enthaltenen Tabellen ausgewählt), dann SQL ausgewählt lassen, und bei SQL-Optionen 'Struktur' und 'Daten' sowie bei Struktur 'Tabellen- und Feldnamen in einfachen Anführungszeichen'anklicken.
Ggf. eine Kompressionsart auswählen.
Kleiner Tipp am Rande: falls sich die Daten anschließend nicht wie beschrieben importieren lassen, dann liegt's an zu kurzen Timeouts.
In dem Fall empfiehlt es sich, entweder die zweite Variante zu benutzen (mit Dump), oder statt 'Alle auswählen' immer nur ein paar Tabellen auswählen und mehrere Dateien anlegen, was sich bei mindestens 51 Tabellen (so viel bringt Contenido mit) als etwas mühsam erweisen könnte.

1.1.2. Kopieren mit einem Datenbank-Dump von der Kommando-Zeile aus
Die Kommandozeile dazu lautet:
mysqldump --user=[User-Name für die Datenbank] 
--password=[Passwort des angegebenen Users] 
--opt [Name der Datenbank]>[Dateiname für den Dump].sql

Das, was in eckigen Klammern angegeben ist, muss natürlich ersetzt werden und die eckigen Klammern weggelassen werden.
Es empfiehlt sich, für den Dump die Dateinamenerweiterung .sql anzugeben.

1.2. Daten in die 'entfernte' Datenbank schreiben

1.2.1. Mit phpMyAdmin
Dazu muss in phpMyAdmin die Datenbank ausgewählt werden. Dann auf 'SQL' gehen und dort auf 'Durchsuchen' klicken, um die unter Punkt 1.1.1. gespeicherte Datei auszuwählen.
Kompression kann auf 'Autom. Erkennung' belassen werden. Anschließend auf OK klicken. Wie schon unter 1.1.1. erwähnt, kann es vorkommen, dass das Importieren nicht klappt. Dann wie oben beschrieben verfahren (Datenbank stückweise exportieren) und wie hier beschrieben stückweise importieren.

1.2.2. Von der Kommando-Zeile aus
Die Kommandozeile dazu lautet:
mysql --user=[User-Name für die Datenbank] 
--password=[Passwort des angegebenen Users] 
[Name der Datenbank]<[Dateiname für den Dump].sql

Hier auch analog wie beim Holen der Daten: die Inhalte der eckigen Klammern müssen durch die eigenen Daten ersetzt werden.

Falls lokal die Daten mit mysqldump exportiert werden, auf dem Server jedoch mit phpMyAdmin importiert werden sollen, gibt's wahrscheinlich eine Fehlermeldung:
You have an error in your SQL syntax near 
'-----------------------------
---------------------------- 
-- 
-- 
CREATE TABL' at line 2 

In dem Fall müssen in der Dump-Datei vor dem Importieren die 'gestrichelten Linien' entfernt werden.

Anmerkung: natürlich können sich der User-Name (samt Passwort) und der Name der Datenbank lokal und auf dem Server unterscheiden.
In dem Fall muss nur darauf geachtet werden, dass die richtigen Daten angegeben werden.

2. Die zu Contenido und zur Site gehörenden Dateien müssen kopiert werden. Dazu lokal das komplette (Contenido-)Verzeichnis packen, in dem die Site liegt, mindestens aber die Mandantenverzeichnisse.
Anschließend wird die gepackte Datei auf dem Server wieder entpackt und zwar an der Stelle, wo die Site erreichbar sein soll. Alternativ, falls auf dem Server kein Shell-Zugang (telnet oder ssh) zur Verfügung steht, können die Dateien einfach mit einem FTP-Programm (ungepackt) kopiert werden. Dabei muss allerdings darauf geachtet werden, dass das FTP-Programm nichts an der Groß- und Kleinschreibung der Dateien ändert!

3. Auf dem Server soll das Contenido-Setup erneut, diesmal mit der Option Upgrade, ausgeführt werden, auch wenn es sich dabei eigentlich nicht um ein Upgrade handelt!

4. Pfade anpassen!

4.1. In der Datei contenido/includes/config.php müssen die Pfade angepasst werden. Nicht nur die Server-Pfade sondern in den meisten Fällen auch die datenbankspezifischen Angaben (unter 'Section 2: Database settings').

4.2. Im Contenido-System unter Administration-->Mandanten müssen die Pfade ebenfalls angepasst werden (Server-Pfad und Web-Adresse).

Tipp: Falls danach z.B. Bilder nicht mehr gefunden werden, soll die Tabelle con_code geleert (nicht gelöscht!) werden, denn die Einträge werden danach neu generiert. Evtl. soll die Tabelle schon lokal vor dem Exportieren geleert werden, denn das verringert auch die Größe der Export-Datei.

5. Bei zusätzlichen Anwendungen, z.B. 'Calendar', müssen auch dort die Einstellungen angepasst werden.

Fürs Einspielen der Dumps gibt es auch ein kleines Programm: [lart=152 lang=de]
Durchschnittliche Bewertung: 4.7 (30 Abstimmungen)

Es ist möglich, diese FAQ zu kommentieren.