Installation Contao 4 und Migration Contao 3 bei Domainfactory: Unterschied zwischen den Versionen
Aus Contao Community Documentation
(→Installation von C4-Erweiterungen) |
|||
Zeile 1: | Zeile 1: | ||
+ | {{stub}} | ||
+ | [[Category:Installation und Updates]] | ||
+ | |||
= Migration einer umfangreichen Contao-3.5-Installation zu Contao 4.4 = | = Migration einer umfangreichen Contao-3.5-Installation zu Contao 4.4 = | ||
Version vom 22. Oktober 2017, 09:11 Uhr
Unvollständiger Artikel: dieser Artikel ist noch nicht sauber bearbeitet.
Bitte erweitere ihn und entferne erst anschliessend diesen Hinweis. |
Inhaltsverzeichnis
Migration einer umfangreichen Contao-3.5-Installation zu Contao 4.4
Umziehen soll die sehr umfangreiche Installation des Deutschen Schachbundes mit mehreren Subdomains. Ausgangspunkt ist Contao 3.5 mit PHP 5.6. Ziel ist Contao 4.4 mit PHP 7.1, alles auf einem ManagedServer bei Domainfactory.
Datenbestand
Die Datenbank enthält über 8 Millionen Datensätze, darunter Daten von zahlreichen selbstprogrammierten Erweiterungen, die alle noch nicht mit C4 getestet wurden. Die Multidomaininstallation umfaßt 5 Subdomains mit über 1.600 Seiten und über 13.000 Nachrichten, um nur einige Eckdaten zu nennen. Die Datenbank ist insgesamt etwa 1,6 GB groß.
Systemvoraussetzungen für Contao 4
Standardmäßig funktioniert die Installation von C4 bei Domainfactory nicht, egal in welchem Tarif man sich befindet. Benutzer mit Shell- und php.ini-Zugriff können ihren Webspace allerdings auf so eine Installation vorbereiten. Dazu gehören:
- Aktivierung der intl-Erweiterung durch Benutzung von PHP Extended. PHP in der Standardedition ist unbrauchbar für C4. Die intl-Erweiterung wird von Symfony benötigt, ohne das Contao nicht läuft.
- Umstellung der Konsole von PHP 4.4.9 auf mindestens PHP 5.6. Das ist nötig um Composer ausführen zu können.
- Erhöhung von memory_limit in der php.ini auf einen Wert von mindestens 1,5 bis 2 GB. Das ist nötig um Composer ausführen zu können.
Vorbereitung Webspace
Es mußte ein leeres Verzeichnis, z.B. webseiten/contao4 angelegt werden und darin ein Verzeichnis web. Auf das Verzeichnis webseiten/contao4/web mußte eine (Sub-)Domain geroutet werden. Per FTP kann danach in das Verzeichnis webseiten/contao4/web die Datei contao-manager.phar hochgeladen werden. Um diese aufrufen zu können, muß die Endung php an diese Datei angehangen werden.
Vorbereitung Datenbank
Ein Backup der Datenbank über phpMyAdmin ist aufgrund der Größe unmöglich. Mit dem MySQLDumper ist es zwar machbar, mir aber zuletzt nicht gelungen. Mittendrin bot mir der Browser die aufgerufene PHP-Datei zum Download an. Offensichtlich hatte sich der Server bei der Interpretierung von PHP-Dateien vertan. Über die Shell hat es schließlich geklappt:
Export einer MySQL-Datenbank:
mysqldump [Datenbankname] -u[Datenbank-Benutzer] -p[Datenbank-Passwort] --default-character-set=utf8 > [Datei]
Import einer MySQL-Datenbank:
mysql -u[Datenbank-Benutzer] -p[Datenbank-Passwort] --default-character-set=utf8 [Datenbankname] < [Datei]
Wichtig dabei ist die Angabe des Zeichensatzes! Sonst hat man statt Umlauten nur Hieroglyphen auf der Seite.
Installation
Mit http://domain/contao-manager.phar.php kann nun die Installation gestartet werden. Der Contao-Manager (CM) stürzt beim ersten Mal immer mit einer Fehlermeldung ab. Nach einem Refresh läuft er aber fortan sauber durch und auch die Installation läuft sauber durch.
Nach der Installation durch den CM muß C4 nun noch mit dem Installtool fertiggestellt werden. Das wird direkt aus dem CM oder mit http://domain/contao/install aufgerufen. Zuvor sollte die C3-Datenbank in die C4-Datenbank importiert worden sein.
Kopieren von fehlenden Dateien
Der Inhalt des files-Ordners aus C3 muß nach webseiten/contao4/files kopiert werden. In zeitlich vertretbaren Rahmen und wenn man das Dateidatum behalten möchte ist das nur über die Shell möglich. Hier gebe ich "mc" ein, was den Midnight Commander startet. Mit dem habe ich nun die rund 44 GB Daten aus files kopiert, was auch so 2-3 Stunden dauerte.
Das Kopieren des templates-Ordners nach webseiten/contao4/templates dauerte ähnlich lange. Das lag daran, weil ich dort den Cache ines externen PHP-Skriptes gespeichert habe, wo sich mehrere 10.000 Dateien in kurzer Zeit ansammeln.
Auf das Kopieren von system/modules nach webseiten/contao4/system/modules habe ich vorerst verzichtet. Hier ist es wahrscheinlich besser nach Erweiterungsversionen für C4 zu suchen und diese über den CM zu installieren.
Installation von C4-Erweiterungen
Bei Domainfactory ist das leider nur über die Shell möglich. Der CM stürzt mit dem von ihm aufgerufenen Composer immer mit einer Zu-wenig-Arbeitsspeicher-Meldung ab. Dabei spielt es keine Rolle, was man in der php.ini zu stehen hat! Domainfactory läßt für Shellaufrufe, die von einem PHP-Skript kommen, nur einen begrenzten Arbeitsspeicher zu, den man nicht beeinflussen kann. Selbst bei einem ManagedServer nicht.