Tipps & Tricks
Wie migriere ich meine lokal entwickelte Site auf einen Server im Internet?
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]
Tags: -
Verwandte Artikel:
- Allgemeiner Hinweis !
- Contenido Module - wo finde ich eine Übersicht
- Hallo, ich habe Contenido inst. im Hintergrund läuft XAMP. Andere CMS laufen ohne Probleme. Bei der Inst. keine Fehlermeldung. Anmeldung am Backend nicht möglich: Unter den Anmeldefeldern mehrfach folgende Zeilen Deprecated: Function ereg_replace() is deprecated in D:\xampp\htdocs\Contenido\conlib\session.inc on line 328 Deprecated: Function ereg_replace() is deprecated in D:\xampp\htdocs\Contenido\conlib\session.inc on line 309 Nach Eingabe der Standardanmeldedaten wird zu ..... weitergeleitet und das Ziel nicht gefunden.
- Wieso ist der "title" meiner Startseite so komisch ? Alle anderen "title" sind richtig. Wie kann ich das ändern? Ich habe AMR installiert.
- ist es möglich Contenido mit einer ssl (128 Bit) Verschlüsselung auszustatten ?
Letzte Änderung des Artikels: 2007-06-27 00:50
Autor: Christa Tabara
Revision: 1.20
Es ist möglich, diesen Artikel zu kommentieren.
Kommentar von Ayshe:
Die Anleitung zur Datenmigration ist hervorragend. Ergänzen möchte ich noch, daß es in manchen Fällen auch nötig sein kann, in der DB auf dem Online-Server Client-ID und Sprach-ID anzupassen, entsprechend den Werten in der Contenido-Administration.
Added at: 2007-09-02 09:48
Kommentar von Ayshe:
Noch ein Tipp: Vor dem Dump der Daten con_code LEEREN (nicht löschen) und alle Tabellen optimieren. Das spart ordentlich Volumen ein.
Added at: 2007-09-02 09:48
Kommentar von Uwe:
Super Artikel, gute Tipps. Nur warum produziert phpmyadmin Dateien, die sich nicht ohne weiteres importieren lassen. Ist doch irgendwie Schildbürgerhaft ??
Added at: 2007-09-02 09:48
Kommentar von Philip:
@Uwe: Zum Einen kann es daran liegen, dass die Datei zu gross ist. PhpMyAdmin hat da eine Sicherung gegen zu grosse Dateien.<br />
Zum Anderen kann es an unterschiedlichen Versionen von PhpMyAdmin liegen oder sogar an unterschiedlichen Versionen von MySQL.
Added at: 2007-09-02 09:48
Kommentar von Ayshe:
Und noch ein Hinweis von mir: Ab Contenido Version 4.6.8 gibt es im Setup die Option \"Migrieren\". Das wäre dann der Königsweg.
Added at: 2007-09-02 09:48



