Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

Multisiting mit DRUPAL - mache ich was falsch?

Eingetragen von andron13 (24)
am 20.06.2007 - 12:17 Uhr in
  • Allgemeines zu Drupal

Tag community,

folgendes: ein Kollege und ich versuchen eine Multisite-Installation der v5 hinzukriegen.

Ziel ist: 1 Installation von Drupal, "darunter" 3 Websites.
Jede Website hat eigenen Content/Nodes etc, aber die Authentifizierung/Userprofile läuft zentral ab.

Datenbanken:

AuthDB - Datenbank für die Authentifizierungsdaten/Sessions/UserProfiles etc.
MainDB - Datenbank für die Hauptdomain dinpellets.de
SubDB1 - Datenbank für die Domain sub1.dinpellets.de
SubDB2 - Datenbank für die Domain sub1.dinpellets.de

Insgesamt also 4 Datenbanken - 1 Zentrale(AuthDB), die nur die Tabellen

'users'
'sessions'
'role'
'authmap'
'sequences'
'profile_fields'
'profile_values'
'users_roles'

enthält, und die 3 anderen DBs, die umgekehrt alles ausser der o.g. Tabellen enthält.

Die Schritte waren wie folgt:

1. die entpackte Installation auf den Server hochgeladen.
2. im ordner "sites" -
- default nach dinpellets.de kopiert
- default nach sub1.dinpellets.de kopiert
- default nach sub2.dinpellets.de kopiert
- default umbenannt nach default_off, also "ausgeschaltet" sozusagen

3. settings.php in den Ordnern

sites/dinpellets.de
sites/sub1.dinpellets.de
sites/sub1.dinpellets.de

angepasst:

Für dinpellets.de(Hauptseite)

$db_url = 'mysql://multiuser:test@localhost/MainDB';

$db_prefix = array(
'default'   => 'MainDB.',
'users'     => 'AuthDB.',
'sessions'  => 'AuthDB.',
'role'      => 'AuthDB.',
'authmap'   => 'AuthDB.',
'sequences' => 'AuthDB.',
'profile_fields' => 'AuthDB.',
'profile_values' => 'AuthDB.',
'users_roles' => 'AuthDB.',
);

Für sub1.dinpellets.de

$db_url = 'mysql://multiuser:test@localhost/SubDB1';

$db_prefix = array(
'default'   => 'SubDB1.',
'users'     => 'AuthDB.',
'sessions'  => 'AuthDB.',
'role'      => 'AuthDB.',
'authmap'   => 'AuthDB.',
'sequences' => 'AuthDB.',
'profile_fields' => 'AuthDB.',
'profile_values' => 'AuthDB.',
'users_roles' => 'AuthDB.',
);

Für sub2.dinpellets.de

$db_url = 'mysql://multiuser:test@localhost/SubDB2';

$db_prefix = array(
'default'   => 'SubDB2.',
'users'     => 'AuthDB.',
'sessions'  => 'AuthDB.',
'role'      => 'AuthDB.',
'authmap'   => 'AuthDB.',
'sequences' => 'AuthDB.',
'profile_fields' => 'AuthDB.',
'profile_values' => 'AuthDB.',
'users_roles' => 'AuthDB.',
);

3. Installationen durchführen:

jeweils

dinpellets.de/install.php
sub1.dinpellets.de/install.php
sub2.dinpellets.de/install.php

aufgerufen und die Installationen wurden automatisch gemacht.

Beim Installation der dinpellts.de habe ich den admin-User angelegt.
Soweit sogut.

Danach konnte ich mich separat auf jeder der Domains mit dem admin-User
anmelden.
Warum ich "separat" betone - weil der sinn und Ziel war es eigentlich
eine Multisite-Installation hinzukriegen, wo man sich auf der Website A
anmeldet, und dann auf den Webseiten B und C frei als angemeldeter User
rumspazieren kann.

Deswegen war habe ich nachgehakt und folgendes als "Fehlerquelle" herausgefunden:

jede der drei DOmains legt als zugehörige Domain im Cookie natrürlich
den eigenen Domainnamen.

Deswegen habe ich in den drei settings.php der Domains den Code

/**
* We try to set the correct cookie domain. If you are experiencing problems
* try commenting out the code below or specifying the cookie domain by hand.
*/

if (isset($_SERVER['HTTP_HOST'])) {
  $domain = '.'. preg_replace('`^www.`', '', $_SERVER['HTTP_HOST']);
  // Per RFC 2109, cookie domains must contain at least one dot other than the
  // first. For hosts such as 'localhost', we don't set a cookie domain.
  if (count(explode('.', $domain)) > 2) {
    ini_set('session.cookie_domain', $domain);
  }
}

umgewandelt in

/**
* We try to set the correct cookie domain. If you are experiencing problems
* try commenting out the code below or specifying the cookie domain by hand.
*/

if (isset($_SERVER['HTTP_HOST'])) {
  $domain = "dinpellets.de";
  #$domain = '.'. preg_replace('`^www.`', '', $_SERVER['HTTP_HOST']);
  // Per RFC 2109, cookie domains must contain at least one dot other than the
  // first. For hosts such as 'localhost', we don't set a cookie domain.
#  if (count(explode('.', $domain)) > 2) {
    ini_set('session.cookie_domain', $domain);
#  }
}

Steht ja sogar im "comment" zu dieser Passage drin:
"[...] or specifying the cookie domain by hand."

Damit legte ab jetzt die Domain - egal wo man sich anmeldete - ein Cookie mit ".dinpellets.de" als Domain
an. Diese Cookie wurde von anderen entsprechend auch benutzt. Alles tip-top.

Damit konnte mich nun überall anmelden und quer über die Webseiten als angemeldeter User rumspazieren.

So.

Meine große Preisfrage nun: JA WARUM ZUM TEUFEL IST DENN SO EIN HACK ÜBERHAUPT NÖTIG?

Oder der Hack ist gar nicht nötig und war ich einfach zu blöd eine
korrekte Multisite-Installation hinzukriegen??

Für jede Meinung - herzlichen Dank...

Liebe Grüße

‹ Länge der Benutzernamen im "Submitted"-Bereich Individuelles Login Formular ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo andron13! ich versuche

Eingetragen von pvgraf (42)
am 20.08.2008 - 19:57 Uhr

Hallo andron13!

ich versuche auch eine Multisite-Installation hinzubekommen bei der man sich nur ein mal als admin einloggen muss und alle seiten verwalten kann, das gleiche soll auch für die user gelten. Bis jetzt klappt es aber bei mir nicht so richtig.
Bei der Installation habe ich die gleichen B-namen und Passwort benutzt und $base_url eingetragen. Alle Sites benutzen diegleiche datenbank mit Prefix (Hauptseite ohne Prefix).

Was mache ich da falsch oder was fehlt noch?
Welche Einzelpunkte aus deiner Erklärung sind genau für login auf allen seiten verantwortlich?
Oder müssen sie alle berücksichtigt werden (wobei in meinem Fall nur eine DB benutzt wird)

Ich wäre dir sehr für einen Hinweis dankbar, versuche schon seit Tagen hier im Forum eine Antwort darauf?
Schau auch bitte hier:
http://www.drupalcenter.de/node/12213

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi. also ich hab eigentlich

Eingetragen von andron13 (24)
am 21.08.2008 - 00:29 Uhr

Hi. also ich hab eigentlich es hinbekommen.

hier settings.php

* Database URL format:
*   $db_url = 'mysql://username:password@localhost/databasename';
*   $db_url = 'mysqli://username:password@localhost/databasename';
*   $db_url = 'pgsql://username:password@localhost/databasename';
*/
$db_url = 'mysql://multiuser:test@localhost/Datenbank-fur-die-seite-№1';
//$db_prefix = '';

$db_prefix = array(
'default'   => 'Datenbank-fur-die-seite-№1.',   //// für jede seite eigene
'users'     => 'Datenbank-fur-alle-seiten-№0.',
'sessions'  => 'Datenbank-fur-alle-seiten-№0.',
'role'      => 'Datenbank-fur-alle-seiten-№0.',
'authmap'   => 'Datenbank-fur-alle-seiten-№0.',
'sequences' => 'Datenbank-fur-alle-seiten-№0.',
'profile_fields' => 'Datenbank-fur-alle-seiten-№0.',
'profile_values' => 'Datenbank-fur-alle-seiten-№0.',
'users_roles' => 'Datenbank-fur-alle-seiten-№0.',
);

Das

/**
* We try to set the correct cookie domain. If you are experiencing problems
* try commenting out the code below or specifying the cookie domain by hand.
*/

if (isset($_SERVER['HTTP_HOST'])) {
  $domain = '.'. preg_replace('`^www.`', '', $_SERVER['HTTP_HOST']);
  // Per RFC 2109, cookie domains must contain at least one dot other than the
  // first. For hosts such as 'localhost', we don't set a cookie domain.
  if (count(explode('.', $domain)) > 2) {
    ini_set('session.cookie_domain', $domain);
  }
}

muss geändert werden auf:

/**
* We try to set the correct cookie domain. If you are experiencing problems
* try commenting out the code below or specifying the cookie domain by hand.
*/

if (isset($_SERVER['HTTP_HOST'])) {
  $domain = "DEINESEITE.DE";
  #$domain = '.'. preg_replace('`^www.`', '', $_SERVER['HTTP_HOST']);
  // Per RFC 2109, cookie domains must contain at least one dot other than the
  // first. For hosts such as 'localhost', we don't set a cookie domain.
#  if (count(explode('.', $domain)) > 2) {
    ini_set('session.cookie_domain', $domain);
#  }
}

das sollte noch reingezogenwerden.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke dir, ich werde es

Eingetragen von pvgraf (42)
am 21.08.2008 - 11:24 Uhr

Danke dir, ich werde es ausprobieren wenn ich wieder Zeit dafür habe.

Hast du (oder jemand anders) Erfahrungen mit dem Modul "Domain Access", der soll ja ähnliche Funktionen beinhalten. Empfielt es den odendrauf zu installieren? (nachdem alles eingerichten ist, er wird sich ja bestimt mit den vorhandenen Einstellungen bedienen?) Wird bestimmt nicht schaden, oder?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 6 Tagen
  • Hey danke
    vor 2 Wochen 5 Stunden
  • Update: jetzt gibt's ein
    vor 2 Wochen 23 Stunden
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 2 Tagen
  • In der entsprechenden View
    vor 3 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 2 Tagen
  • gelöst
    vor 5 Wochen 6 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 5 Stunden

Statistik

Beiträge im Forum: 250233
Registrierte User: 20452

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 19 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association