web-dev-qa-db-ja.com

Drupal 8:サブディレクトリのマルチサイトが機能しない

私はこのチュートリアルに従いました(Drupal 7)しかし、私にはうまくいきませんでした(Drupal 8 ):

これは私の環境です:

  • CentOs 7 with SELinux(mode:enforcing
  • ワニス4.0.3
  • Apache 2.4.23
  • Drupal 8.2.4

サイトの次の構造を作成する必要があります。

  • / <-最初のサイト
  • / site2 <-2番目のサイト
  • / site3 <-3番目のサイト

ファイルsites/sites.phpには、

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

ディレクトリsites /には、

  • デフォルト/
  • site2.localhost
  • site3.localhost

drupal oのルートには、への次のシンボリックリンクがあります:)

  • site2->。
  • site3->。

私の。htaccessファイルでは、次のようになります:

  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]

各サブサイトにアクセスしようとすると、デフォルトが表示されます。なにが問題ですか?

3
Lenin Meza
  • ダウンロード 最新のD8バージョン。
  • 抽出して次のディレクトリに移動します:/ drupal/sites /
  • _sites.php_の作成_example.sites.php_の複製
  • コードをsites.phpに追加します

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

  • サイトフォルダーに「cats」と「dogs」という名前の2つのフォルダーを作成します。

    _/drupal/sites/dogs/
    /drupal/sites/cats/
    _
  • / drupal/sites/default/サイトには、各サイトにコピーする必要があるデフォルトのファイルがあります。これらのファイルを、cpsコマンドを使用して、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
    _
  • Virtualhostのセットアップ

    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>
    _
  • 完了したら、次のURLからマルチサイトコンテキストで新しいWebサイトのインストールを開始できます。

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

drushを使用することをお勧めします。それはあなたの人生をより簡単にします:

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

Drushが適切な設定をすべて生成することに注意してください。次に、「手動」にしたいときに実際にどのようになっているのかを確認できます。

そして、ここにDrupal 8にマルチサイトを設定する手順の完全なリストがあります: https://evolvingweb.ca/ blog/drupal-8-configuration-management-multi-site

0
Jorge Díaz

本当にあなたの人生を楽にしたいなら、 Aegir を使ってください。これはすべてポイントアンドクリックで自動的に行われます。 公式Drupalマルチサイトのドキュメント から:

ただし、Aegirホスティングシステムを使用することをお勧めします。これは、ApacheとNginxの両方の仮想ホストの自動構成、HTTPSサポートの追加、Composerコマンドの実行など)を含む安全なベストプラクティスを使用して、すべての重い作業を行います。参照 ドキュメント「プラットフォーム」をセットアップする場合 、マルチサイトコードベースのAegir-speak。

ユースケースでは、コアAegirに同梱されている(サイト)サブディレクトリモジュールを有効にする必要があります。

これはすべてバックエンドで行われるため、コマンドラインの作業はまったく必要ありません

0
colan