it-swarm.com.de

Drupal 8: Mehrere Sites in Unterverzeichnissen funktionieren nicht

Ich habe dieses Tutorial befolgt ( Drupal 7), aber es hat bei mir nicht funktioniert ( Drupal 8):

Das ist meine Umgebung:

  • CentOs 7 mit SELinux ( Modus: Durchsetzen)
  • Lack 4.0.3
  • Apache 2.4.23
  • Drupal 8.2.4

Ich muss die nächste Struktur von Websites erstellen:

  • / <- Erste Seite
  • / site2 <- Zweite Site
  • / site3 <- Dritte Site

In der Datei sites/sites.php habe ich:

$sites['localhost.site2'] = 'site2';
$sites['localhost.site3'] = 'site3';

Im Verzeichnis sites/ habe ich:

  • standard/
  • site2.localhost
  • site3.localhost

In der Wurzel von drupal o haben die nächsten Symlinks zu . :

  • site2 ->.
  • site3 ->.

In meiner . Htaccess Datei habe ich:

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} ^/site2/(.*)$
  RewriteRule ^(.*)$ /site2/index.php [L,QSA]

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} ^/site3/(.*)$
  RewriteRule ^(.*)$ /site3/index.php [L,QSA]

Als ich versuchte, auf jede Unterwebsite zuzugreifen, zeigt er mir die Standardeinstellung. Was ist falsch?

3
Lenin Meza
  • Download neueste D8-Version.
  • Extrahieren Sie und navigieren Sie in das Verzeichnis:/drupal/sites /
  • Erstellen Sie sites.php Duplizieren Sie example.sites.php
  • Fügen Sie den Code zu sites.php hinzu

    $sites = array( 'dogs.multisite.local' => 'dogs', 'multisite.local.cats' => 'cats', );

  • Erstellen Sie im Ordner "sites" zwei Ordner mit den Namen "Katzen" und "Hunde".

    /drupal/sites/dogs/
    /drupal/sites/cats/
    
  • Die /drupal/sites/default /site enthält Standarddateien, die wir in jede unserer Sites kopieren müssen. Kopieren Sie diese Dateien mit dem Befehl cp im Verzeichnis sites:

    cp default/default.settings.php dogs/settings.php
    cp default/default.settings.php cats/settings.php    
    cp default/default.services.yml dogs/services.yml
    cp default/default.services.yml cats/services.yml
    
  • Richten Sie virtualhost ein

    Hosts

     127.0.0.1  multisite.local
    

    httpd-vhosts.conf

    <VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/opt/lampp/htdocs/drupal"
    ServerName multisite.local
    ServerAlias    *.multisite.local multisite.local.*
    ErrorLog "logs/multisite.local-error_log"
    CustomLog "logs/multisite.local-access_log" common
    </VirtualHost>
    
  • Sobald dies erledigt ist, können Sie die Installation Ihrer neuen Website in einem Kontext mit mehreren Standorten über die folgenden URLs starten:

       http://dogs.multisite.local/
       http://multisite.local.cats/
    
1
developer

Ich empfehle Ihnen, drush zu verwenden. Es wird Ihnen das Leben leichter machen:

$ drush site-install --db-url=mysql://db_user:[email protected]/sample_site_db --sites-subdir=sample.subsite.com --yes

Bitte beachten Sie, dass drush die richtige Konfiguration für Sie generiert. Dann können Sie überprüfen, wie es tatsächlich ist, wenn Sie "manuell" gehen möchten.

Und hier haben Sie eine vollständige Liste der Schritte zum Einrichten einer Multisite auf Drupal 8 : https: //evolvingweb.ca/blog/drupal-8-configuration-management-multi-site

0
Jorge Díaz

Wenn Sie Ihr Leben wirklich einfacher machen möchten, verwenden Sie Aegir . All dies geschieht automatisch per Point & Click. Von die offizielle Drupal Dokumentation auf Multisite :

Es ist jedoch zu beachten, dass die Verwendung des Aegir-Hosting-Systems bevorzugt wird. Es erledigt das ganze schwere Heben für Sie mithilfe sicherer Best Practices, einschließlich der automatischen Konfiguration virtueller Hosts für Apache und Nginx, Hinzufügen von HTTPS-Unterstützung, Ausführen von Composer-Befehlen usw. Siehe Dokumentation) zum Einrichten einer "Plattform" , Aegir-speak für eine Codebasis mit mehreren Standorten.

Für Ihren Anwendungsfall müssen Sie das Modul (Site) Subdirectories aktivieren, das im Lieferumfang von Core Aegir enthalten ist.

Es ist überhaupt keine Befehlszeilenarbeit erforderlich , da dies alles im Back-End für Sie erledigt wird.

0
colan