Was passiert bei der Installation von Drupal?

Kopiert von http://www.drupalcenter.de/handbuch/6083 und etwas überarbeitet ...

Was passiert bei der Installation von Drupal?

  • Beim ersten Aufruf der Domain (auf dem Server) oder des Drupal-Installationsordners (zB WinXP localhost) liest Drupal die Datei /sites/default/settings.php
    Ist dort KEIN brauchbarer Datenbank-Verbindungs-String angegeben, beginnt die Installation: das heißt, es werden 1) die Verbindungsdaten der gewünschten Datenbank abgefragt, dann 2) alle nötigen Tabellen in dieser Datenbank angelegt und 3) die Einstellungen in der Datei "settings.php" geändert: der korrekte DB-Verbindungs-String wird eingetragen und evtl der Präfix für die DB-Tabellen, falls man einen bei der Installation angegeben hat.
    In manchen Forumsbeiträgen gab es die Aufforderung, die DB-Struktur selber anzulegen. Das habe ich so verstanden, dass man Teil 2) der automatischen Installation auch manuell erledigen kann (oder früher vielleicht auch musste?); ich habe aber nicht rausgefunden, wo die notwendigen SQL-Anweisungen für die Grundstruktur zu finden wären...
  • Wie kann man jetzt also eine 2. Site zusätzlich zur "Basis" einrichten?? (...denn die "settings.php" ist ja jetzt verändert, so dass man nicht mehr in die Installationsroutine reinkommt und bei Aufruf von "install.php" wird erkannt, dass die DB schon eingerichtet ist)
  • Drupal "weiß" nicht, dass es eine multisite-Installation sein soll; d.h., es gibt dafür keine Variable oder sowas, sondern der multisite-Betrieb ergibt sich beim Drupal-Betrieb von selber, sobald mehrere "settings.php" vorhanden sind;
    also tut man jetzt so, als wäre noch gar keine "Basis-"Seite eingerichtet und fängt für die Einrichtung der 2. Seite von vorne an:
    Umbenennen des Ordners "default" zB in "_default"; Kopieren des Original-default-Ordners der Drupal-Distribution; Erneutes Aufrufen der Domain (auf dem Server) oder des Drupal-Installationsordners (zB WinXP localhost) wie oben:
    man gibt die Verbindungsparameter für die DB an, die für die 2. Seite (im weiteren "Multi1" genannt) genutzt werden soll: es gibt mehrere Möglichkeiten: eine andere DB oder die DB, in der schon die Tabellen der "Basis" liegen.
    Wenn man eine DB benutzt, in der schon (irgendwelche) Tabellen einer Drupal-Installation liegen, muss ein Präfix angegeben werden, damit klar ist, welche DB-Tabellen zu welcher Site gehören; zB könnte man als Präfix hier "multi1_" angeben
  • Nun gibt es in der DB zwei komplette Sätze mit Drupal-Tabellen: eine Satz ohne Präfix oder mit Präfix "basis_" und einen Satz mt Präfix "multi1_". Diese Präfixe sind in den jeweiligen "settings.php" eingetragen worden und können dort auch geändert werden! Sollen zB von der Seite "Multi1" die Tabellen "basis_users" und "basis_roles" mitbenutzt werden, ändert man das prefix-Array in der "settings.php" der "Multi1"-Seite:
    $db_prefix = array(
       'default' => 'multi_',
       'users' => 'basis_',
       'role' => 'basis_',
    )
  • Was jetzt noch fehlt in der "settings.php" der "Multi1"-Seite:
    $base_url muss auskommentiert und gesetzt werden (dazu ist ja genug geschrieben worden)
  • Zum Schluss werden die Ordner-Namen richtig genannt:
    1) den momentanen Ordner "default" (das soll ja der Ordner der "Multi1"-Seite werden) umbenennen in den Namen der $base_url, wobei "/" durch"." ersetzt werden (ist auch schon gut beschrieben)
    2) den Ordner "_default" wieder zurückbenennen in "default"
    Jetzt sollte es funktionieren!
  • Im aktuellen Zustand nutzt "Multi1" alle Themes und Module von "Basis". Da idR die "Multi"-Seiten eine Erweiterung/Änderung der "Basis" darstellen, werden die gewünschten "Multi"-Themes und -Module in entsprechende Ordner unterhalb des "Multi"-Site-Ordners kopiert.

Klassifikation