Seite 1 von 1

Probleme mit 2. Mandant nach Update+Migration

Verfasst: Mi 15. Sep 2010, 08:16
von Seperion
Ich bin gerade dabei einige Kunden, betreffend ihrer Webseiten und E-Mail-Accounts auf unseren Root-Server umzuziehen.
Dabei bin ich bereits mehrmals auf Contenido Installationen gestoßen. Bei der Aktuellen habe ich jedoch das Erste mal einen zweiten Mandanten.
Dieser 2. Mandant (mit eigenen Domains etc.) macht mir jedoch nach dem Umzug, dem Update und der Migration Probleme.
Das Layout wird nur fehlerhaft angezeigt und selbst das was zu sehen ist gehört zum 1. (nicht zum 2.) Mandanten.
Alle Pfade sind richtig gesetzt. Sowohl in einer erneuten durchführung der Migration, der config.php als auch im Backend.
Gerade der 1. Mandant (der funktionierende) ist vollkommen unwichtig, der 2. aber dafür kritisch.

Ich kämpfe jetzt schon den dritten Tag damit, weil allein schon der SQL-Dump 38MB hat und dadurch erhebliche Wartezeiten entstehen.
Ich hoffe jemandem kommt das Problem bekannt vor oder hat sogar eine Lösung (/einen Tipp) parat.

Hier noch ein Paar Eckdaten der Systeme:
#Quellsystem:
##MySQL: v4.0.27
##PHP: v5.2.6-1+lenny9
##Contenido: v4.6.2

#Zielsystem:
##MySQL: 5.0.77
##PHP: 5.1.6
##Contenido: 4.6.2

P.S.: Ich habe beim Einspielen der Dumps streng auf die Einhaltung der UTF-8 Formatierung sowie der MySQL40 Kompatibilität geachtet.

Re: Probleme mit 2. Mandant nach Update+Migration

Verfasst: Mi 15. Sep 2010, 10:06
von xmurrix
Hallo Seperion,

erstmal willkommen im Contenido-Forum.

Ob wir die hier im Forum bei deinem Problem helfen können, weiß ich nicht. Die Verwendete Contenido-Version 4.6.2 scheint sehr alt zu sein, aber schaun wir mal...

Du schreibst, dass Seiten des 2. Mandanten im Layout des 1. Mandanten ausgegeben werden. Anscheinend wird die ID des Mandanten nicht korrekt erkannt, daher gibt es ein Fallback zum ersten Mandanten - das wird die Ursache bei dir sein.

An der Datenbank sollte das Problem nicht liegen. Dennoch kannst du mal einen Blick in den Fehler-Log (ist in contenido/logs/errorlog.txt) werfen, vielleicht sind einige Einträge darin, die auf Probleme in der DB hinweisen.

Im Mandantenverzeichnis gibt es eine Datei config.php (unter cms/), in dieser Datei ist die ID der zu setzenden Sprache und des Mandanten angegeben. Wird die ID nicht über GET-Parameter übergeben, wurde es vorher nicht in der Session gespeichert, werden die Werte aus der config.php gesetzt.

Es gibt 2 Möglichkeiten, wie man mehrere Mandanten verwalten kann.
a.) Jeder Mandant teilt sich das gleiche Mandantenverzeichnis (i.d.R. den Ordner cms/)
b.) Jeder Mandant hat sein eigenes Mandantenverzeichnis (z. B. cms/ für Mandant 1 und cms2/ für Mandant 2 usw...)

Wenn sich beide das gleiche Mandantenverzeichnis teilen, müsstest du herausfinden, wo genau die ID des Mandant gesetzt wird. Das sollte ziemlich am Anfang der Datei front_content.php passieren, die im Mandantverzeichnis liegt.

Wenn beide Mandanten verschiedene Mandantenverzeichnisse haben, könnte in der config.php des 2. Mandanten die falsche Mandanten ID sein.

Du schreibst, dass jeder Mandant seine eigene Domain hat. Vielleicht wurde da eine eigene Logik zur Erkennung des Mandanten implementiert, die nach dem Umzug nicht mehr greift und daher der 2. Mandant falsch ausgegeben wird. Das kann z. B. eine Regel in der .htaccess sein oder in einer config.local.php im Mandantenverzeichnis, wobei ich mir nicht sicher bin, ob es eine config.local.php schon in 4.6.2 gab. Es kann aber auch sein, dass in der front_content.php ein anderes PHP-Script eingenbunden wird, in der die Erkennung des Mandanten stattfindet.

Gruß
xmurrix

Re: Probleme mit 2. Mandant nach Update+Migration

Verfasst: Mi 15. Sep 2010, 13:40
von Seperion
Du schreibst, dass Seiten des 2. Mandanten im Layout des 1. Mandanten ausgegeben werden. Anscheinend wird die ID des Mandanten nicht korrekt erkannt, ...
das war der Fehler.
Jeder Mandant hat sein eigenes Mandantenverzeichnis
... könnte in der config.php des 2. Mandanten die falsche Mandanten ID sein.
das war dann auch die Lösung.
... müsstest du herausfinden, wo genau die ID des Mandant gesetzt wird. Das sollte ziemlich am Anfang der Datei front_content.php passieren, ...
Ja/Nein. Dort wurde die 'config.php' importiert. Da stands dann drin.

Code: Alles auswählen

$load_lang = "1" ;
$load_client = "1";
geändert entsprechend der Angaben aus dem Backend in:

Code: Alles auswählen

$load_lang = "3";
$load_client = "3";
Ach ja und der aufruf der einzelnen Mandanten ging via Pfad (also: http://www.webseitenurl.de/cms/ und http://www.webseitenurl.de/man1/)
Weiterleitung durch eine vorgelagerte (http://www.webseitenurl.de/)index.php welche je nach quell-domain die weiterletung gewählt hat.
Hoffe diese Lösung hilft auch anderen.

Hätte nicht erwartet das die Lösung schlussendlich wo einfach sein würde. Ich habe wohl einfach zu lange auf PHP-Skripte und conf.php Dateien gestarrt.
@xmurrix: Vielen Dank, du hast mir sicherlich 2 Tage Arbeit erspart (für den manuellen Umzug des Inhalts)