[gelöst] Multisites Installation für Drupal 7
Eingetragen von RuediGE (55)
am 04.05.2011 - 12:51 Uhr in
am 04.05.2011 - 12:51 Uhr in
Hallo,
habe schon ein bischen gewühlt zum Thema Multisites. Es scheint für jede Drupal-Version ein bischen anders zu gehen.
Hat jemand eine verständlich Anleitung wie es nun mit Drupal 7 ganz konkret geht?
Gerne wollte ich ein Theme/Template benutzen, dass mit verschieden Bannern und natürlich Inhalten versehen ist (wohl Genesis oder Adaptive). Was ist dabei zu beachten?
Muss man im übrigen die Ordner genau mit dem Domänennamen bezeichnen oder reicht irgendeine Bezeichnung? Wie erkennt Drupal eigentlich den Ordner - über htacces-Adressierung? Oder lasse ich die Domäne bei mir auf der Konsole (Webprovider) direkt auf den Unterordner zeigen?
Danke für Eure Hilfe
Ruedi
- Anmelden oder Registrieren um Kommentare zu schreiben
Eigentlich nicht so kompliziert ...
am 04.05.2011 - 14:36 Uhr
Hallo Ruedi,
ich versuche mich mal mit einer Anleitung...
Sagen wir einmal Du hast eine Hauptdomain (www.example.de) und zwei Subdomains (sub1.example.de bzw. sub2.example.de). Nun gibt es zwei verschiedene Vorgehensweisen, je nach dem, was Du möchtest:
1. Jede Domain hat alles für sich allein, User, Theme, Inhalte, etc. (Jede Domain hat eine eigene Datenbank)
2. Die Domains sollen sich verschiedene Tabellen teilen (meist die Benutzer, d.h. einmal anmelden, überall einloggen) (Alle Domains teilen sich eine Datenbank.)
zu 1. Alle Domains verweisen auf das Rootverzeichnis Deiner Hauptdomain. (Beim Provider einstellen)
Dann erst alle Ordner und Dateien in dieses Verzeichnis laden und Installation starten.
Wenn Installation abgeschlossen, dann im Verzeichnis sites zwei Ordner erstellen: sub1.example.de und sub2.example.de (müssen GENAU wie die Subdomains heißen!!!).
In jeden dieser Ordner die default.settings.php kopieren und in settings.php umbenennen.
Dann im Browser die erste Subdomain aufrufen - Installationsroutine startet. Du kannst für jede Domain einen anderen Administrator etc. angeben.
Installation durchführen und fertig.
Desgleichen mit der zweiten Subdomain.
Damit bist Du eigentlich fertig.
Du kannst nun entweder alle Module und Themes unter sites/all/modules bzw. sites/all/themes speichern, dann können alle drei Sites daraufzugreifen oder Du erstellst in den Ordnern sub1.example.de und sub2.example.de jeweils Unterordner themes bzw. modules und speicherst dort Module und Themes, die dann aber ausschließlich nur dieser Domain zur Verfügung stehen.
Happy Drupaling!
zu 2. Hier ist es ein wenig umständlicher, aber auch keine Hexerei:
Alle Domains verweisen auf das Rootverzeichnis Deiner Hauptdomain. (Beim Provider einstellen)
Dann erst alle Ordner und Dateien in dieses Verzeichnis laden und Installation starten. Bei der Angabe für die Datenbank ein Präfix vergeben (unter 'advanced options'), sagen wir mal main_ ! Wenn man dann in der Installation an die Stelle kommt, wo man den Administrator anlegen muss, die Installation ruhen lassen (Fenster NICHT schließen!!). Dann per phpmyadmin auf die soeben angelegte Datenbank zugreifen und folgenden SQL Befehl ausführen lassen:
rename table main_users to share_users;
rename table main_sessions to share_sessions;
rename table main_role to share_role;
rename table main_authmap to share_authmap;
rename table main_sequences to share_sequences;
Solltest Du noch weitere Tabellen teilen wollen, so müssen diese entsprechend wie oben auch umbenannt werden. Dann die settings.php öffnen und wie folgt abändern:
$databases = array (
'default' =>
array (
'default' =>
array (
'database' => 'NameDerDatenbank',
'username' => 'BenutzernameDerDatenbank',
'password' => 'PasswortDerDatenbank',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => array(
'default' => 'main_',
'users' => 'share_',
'sessions' => 'share_',
'role' => 'share_',
'authmap' => 'share_',
'sequences' => 'share_',
),
),
),
);
Wenn dies geschehen ist, dann wieder zurück zur Drupal Installation. Es kann sein, dass Drupal mit einer Fehlermeldung abbricht, weil es die Umbenennung noch nicht erkannt hat. Dann den Browser mit F5 neu laden, bestätigen und schon geht es weiter und Du kannst Admin anlegen. Damit ist die Hauptdomain fertig eingerichtet.
Im Verzeichnis sites zwei Ordner erstellen: sub1.example.de und sub2.example.de (müssen GENAU wie die Subdomains heißen!!!). In jeden dieser Ordner die default.settings.php kopieren und in settings.php umbenennen.
Dann im Browser die erste Subdomain aufrufen - Installationsroutine startet. Bei der Angabe für die Datenbank die gleiche wie für die Hauptdomain benutzt wurde auswählen und ein Präfix vergeben (unter 'advanced options'), sagen wir mal sub1_ ! Wenn man dann in der Installation an die Stelle kommt, wo man den Administrator anlegen muss, die Installation abbrechen. Dann per phpmyadmin auf die Datenbank zugreifen und die folgenden Tabellen löschen: sub1_users, sub1_sessions, sub1_role, sub1_authmap, sub1_sequences.
Dann die settings.php im Unterordener sub1.example.de öffnen und wie folgt abändern:
$databases = array (
'default' =>
array (
'default' =>
array (
'database' => 'NameDerDatenbank',
'username' => 'BenutzernameDerDatenbank',
'password' => 'PasswortDerDatenbank',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => array(
'default' => 'sub1__',
'users' => 'share_',
'sessions' => 'share_',
'role' => 'share_',
'authmap' => 'share_',
'sequences' => 'share_',
),
),
),
);
Bei der zweiten Subdomain genauso verfahren, dann aber ein weiteres Präfix auswählen (sub2_) die entsprechenden Tabellen wieder löschen und auch die entsprechende settings.php anpassen.
Damit bist Du eigentlich fertig.
Du kannst nun entweder alle Module und Themes unter sites/all/modules bzw. sites/all/themes speichern, dann können alle drei Sites daraufzugreifen oder Du erstellst in den Ordnern sub1.example.de und sub2.example.de jeweils Unterordner themes bzw. modules und speicherst dort Module und Themes, die dann aber ausschließlich nur dieser Domain zur Verfügung stehen.
Happy Drupaling!
Fertig!
Spielt eine Ordnerhierarchie bei Multisites eine SEO Rolle
am 09.05.2011 - 17:14 Uhr
Hallo Kirsten,
danke für die hervorragende Antwort. Es wäre toll, wenn es generell öfter so verständliche Antworten gäbe!!!
1. Jede Domain hat alles für sich allein, User, Theme, Inhalte, etc. (Jede Domain hat eine eigene Datenbank)
Ich wähle Variante 1. Die erste Domäne über die ich Drupal einrichte, ist quasi die Hauptdomäne und die Settings finden sich im Ordner default. Die anderen in den Neben-/Unterordnern. Hier ist genau meine Frage, spielt die Ordnerhierarchie irgendeine Rolle hinsichtlich SEO-Ranking. Mit anderen Worten werden die Sites als gleichwertig von Google angesehen oder habe die weiteren Ordner eine untergeordnete Rolle? Also die, die sich in separaten Ordnern befinden und nicht im Default liegen und über eigene Domännamen angesteuert werden (egal ob Domän oder Subdomän)
Wird standardmäßig eigentlich keine htacess in Drupal verwendet? Wie steuert man dann Weiterleitungen etc.
Danke, Ruedi
Ordner nicht wichtig
am 09.05.2011 - 21:23 Uhr
Hallo Ruedi,
freut mich, dass Du mit meiner Beschreibung was anfangen konntest. Auf die Ordner wird gar nicht zugegriffen. Die Inhalte werden ja in der Datenbank vorgehalten. Eine Hierarchie, wie Suchmaschinen sie nutzen werden per Path und Pathauto erstellt. Zusätzlich kann man auch eine Sitemap erstellen lassen (per Modul), die dann bevorzugt von Suchmaschinen indiziert werden.
In jeder Drupal Installation befindet sich im Rootverzeichnis eine .htaccess Datei und auch noch in den files Verzeichnissen.
ist der doppelte Unterstrich
am 29.03.2012 - 14:59 Uhr
ist der doppelte Unterstrich bei 'sub1__' gewollt?
Jetzt erst gesehen
am 20.04.2012 - 09:25 Uhr
Hallo Meister Lampe,
erwischt ... so nicht gewollt muß ein einfacher Unterstrich sein.
Gut zu wissen :) Hab es jetzt
am 20.04.2012 - 09:28 Uhr
Gut zu wissen :)
Hab es jetzt so ausprobiert und es klappt einwandfrei! Ich danke Dir für die tolle Beschreibung!
Version 1 funktioniert nicht!?!
am 06.10.2012 - 12:49 Uhr
Hallo Kirsten,
vielen Dank für die klare Beschreibung. Trotzdem funktioniert das bei mir nicht. Habe ich etwas falsch gemacht?
Meine Hauptdomain verweist auf das Rootverzeichnis meines Hosteurope-Webpacks (/www).
Ich habe alle Ordner und Dateien in dieses Verzeichnis geladen und die Installation durch Aufruf der Seite gestartet. Das Resultat kann man unter http://www.medical-random.de sehen.
Nachdem die Installation abgeschlossen war, habe ich im Verzeichnis /sites einen Ordner /bv-aku.medical-random.de erstellt. Auf den verweist per "Browse"-Funktion des Hosteurope-KIS die bei Hosteurope eingestellte Subdomain gleichen Namens (http://www.bv-aku.medical-random.de).
In meinem Ordner für die Subdomain habe ich die default.settings.php aus dem Orginal-drupal-Download kopiert und in settings.php umbenannt.
Dann habe ich im Browser die Subdomain mit http://www.bv-aku.medical-random.de aufgerufen - und statt der Installationsroutine sehe ich nur das "Vertippt?"-Feld der Telekom, bei der wir unseren Internet-Anschluss haben.
Kann mir jemand weiterhelfen? Ich würde mich sehr freuen.
Viele Grüße - Ingolf
Hallo Ingolf,so wie ich es
am 06.10.2012 - 13:02 Uhr
Hallo Ingolf,
so wie ich es gelesen habe, zeigt deine Domain http://www.bv-aku.medical-random.de/ auf den ornder in /sites/bv-aku.medical-random.de ist das richtig?
Alle Domains unter denen Drupal erreichbar sein soll, müssen auf das Rootverzeichnis zeigen.
...
Alle Domains verweisen auf das Rootverzeichnis Deiner Hauptdomain. (Beim Provider einstellen)
...
Hast du also eine Struktur:
rootverzeichnis
|--alle
|--deine
|--Drupalordner
|-- index.php
Solltest du sowohl mit
http://www.medical-random.de/
als auch mit
http://www.bv-aku.medical-random.de/
auf deine index.php "zugreifen".
Sobald das eingestellt ist und du in /sites deinen Unterordner erstellst, wird Drupal beim Aufruf der Subdomain eine neue Installation starten und du kannst Kirstens Anleitung folgen.
LG,
Benni
index.php
am 06.10.2012 - 16:48 Uhr
Hallo Benni,
danke für die schnelle Antwort.
Mein Verzeichnis bei Hosteurope sieht so aus:
Das Rootverzeichnis heißt "/".
In diesem befindet sich das Verzeichnis "/www", in dem alle Drupal-Dateien inklusive der index.php sind. Das scheint korrekt zu sein, da www.medical-random.de ja problemlos funktioniert.
Im Verzeichnis "/www/sites" habe ich die Ordner "/bv-aku", "/bv-aku.medical-random.de" und "/www.bv-aku.medical-random.de" angelegt, alle mit Orginal-default.settings.php-Dateien, welche in "settings.php" umbenannt worden sind. Aber keiner der angelegten Ordner funktioniert. Dabei ist es egal, ob ich im Hosteurope-KIS den Verweis der Subdomain auf "/", "/www" oder "/www/sites/" oder "/www/sites/bv-aku" oder "/www/sites/bv-aku.medical-random.de" oder "/www/sites/www.bv-aku.medical-random.de" einstelle.
Bei mir herrscht pure Ratlosigkeit...
Über weitere Fragen, Hinweise oder Hilfe würde ich mich sehr freuen! Danke! - Ingolf
www.domain.de ist
am 06.10.2012 - 19:50 Uhr
www.domain.de ist üblicherweise als automatischer Alias zu domain.de angelegt. Ich glaube, das macht Plesk bereits von Hause aus. Wichtig ist allerdings die Einstellung des "DocumentRoot". Das müßte bei Dir für alle Domains auf /www gestellt werden. Wenn Du aber mit einer Subdomain arbeitest, also mit bv-aku.medical-random.de, kommt kein www mehr davor oder Du mußt diesen Domain-Alias explizit anlegen. Dann muß aber dieses Verzeichnis auch unter sites extra angelegt werden bzw. Du mußt in der Datei sites.php entsprechende Einträge vornehmen.
Beste Grüße
Werner
Später erstellte Datenbanktabellen in Multisites teilen
am 18.07.2013 - 11:43 Uhr
Hallo Ruedi,
zu 2. Hier ist es ein wenig umständlicher, aber auch keine Hexerei:
Alle Domains verweisen auf das Rootverzeichnis Deiner Hauptdomain. (Beim Provider einstellen)
Dann erst alle Ordner und Dateien in dieses Verzeichnis laden und Installation starten. Bei der Angabe für die Datenbank ein Präfix vergeben (unter 'advanced options'), sagen wir mal main_ ! Wenn man dann in der Installation an die Stelle kommt, wo man den Administrator anlegen muss, die Installation ruhen lassen (Fenster NICHT schließen!!). Dann per phpmyadmin auf die soeben angelegte Datenbank zugreifen und folgenden SQL Befehl ausführen lassen:
rename table main_users to share_users;
rename table main_sessions to share_sessions;
rename table main_role to share_role;
rename table main_authmap to share_authmap;
rename table main_sequences to share_sequences;
Solltest Du noch weitere Tabellen teilen wollen, so müssen diese entsprechend wie oben auch umbenannt werden. Dann die settings.php öffnen und wie folgt abändern:
$databases = array (
'default' =>
array (
'default' =>
array (
'database' => 'NameDerDatenbank',
'username' => 'BenutzernameDerDatenbank',
'password' => 'PasswortDerDatenbank',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => array(
'default' => 'main_',
'users' => 'share_',
'sessions' => 'share_',
'role' => 'share_',
'authmap' => 'share_',
'sequences' => 'share_',
),
),
),
);
Wenn dies geschehen ist, dann wieder zurück zur Drupal Installation. Es kann sein, dass Drupal mit einer Fehlermeldung abbricht, weil es die Umbenennung noch nicht erkannt hat. Dann den Browser mit F5 neu laden, bestätigen und schon geht es weiter und Du kannst Admin anlegen. Damit ist die Hauptdomain fertig eingerichtet.
Dass ich die Tabellen:
- users
- sessions
- role
- authmap
- und
- sequences
umbenennen muss, bevor ich den Admin einrichte, ist mir klar:
dies im Nachhinein zu ändern, ist schwieriger.
DOCH NUN ZU MEINER FRAGEN:
Später erstellte Datenbanktabellen in Multisites teilen :
Wenn ich später weitere Module installiere, welche eigene Tabellen anlegen / nutzen,
stehen mir diese Tabellen,
zu diesem Zeitpunkt der Installation, zum teilen ('share_'), NOCH NICHT zur Verfügung.
Kann ich deren Tabellen (sofort nach der Installation / Aktivierung des entsprechenden Moduls) umbenennen und (durch den Vollzug des Eintragens in den entsprechenden settings.php -Dateien) teilen?
Vielen Dank im Voraus
Alviss
Muss sich der sites/default -Ordner auf eine Domain beziehen?
am 18.07.2013 - 11:47 Uhr
Hallo,
(was ich bei meiner vorhergehenden Frage vergaß!!! ;o( )
Muss sich der sites/default -Ordner auf eine Domain beziehen?
Es ist doch NUR ein Ordner, in welchem die gemeinsam genutzten Ordner / Dateien abgelegt sind.
Reicht es nicht aus,
wenn sich die weiteren Ordner, unter sites/ (z.B. exemple.com, exemple.de, ...), auf jeweils eine vorhandene Domain / Sub-Domain beziehen?
Vielen Dank im Voraus
Alviss