logo

パレット - カラフルに🎨

Palette — ビジュアルページビルダー、デザインの専門知識は不要です。

ライブデモ パレットをダウンロード

Scroll
22/04/2020, by maria

次のガイドでは、Drupal 8マルチサイトの設定に必要な手順を説明します。このガイドは開発中であり、いくつかの設定例のみを紹介しています。HTTPS、他のウェブサーバーとデータベース、より高度なバーチャルホスト設定など、他のオプションも利用できます。

ただし、Aegirホスティングシステムを使用することをお勧めします。Aegirは、ApacheとNginxのバーチャルホストの自動設定、HTTPSサポートの追加、Composerコマンドの実行など、安全なベストプラクティスを使用してすべての重労働を代行します。「プラットフォーム」の設定に関するドキュメントを参照してください。Aegir用語では、これはマルチサイトコードベースを意味します。

プロセスの概要:

1. マルチサイトインスタンスのルートサイトとして機能するDrupal 8インスタンスをインストールします。この例では、ルートサイトはd8multisiteという名前で、d8multisite.comでアクセスでき、/var/www/d8multisiteにインストールされます。

2. site1.d8multisite.comでアクセスできるsite1という名前のサイトをマルチサイトに作成します

3. ルートサイトの外部に独自のモジュールを持つようにsite1を設定します。

ステップ1:マスターサイトの作成

プロセスを開始するには、サーバーにDrupal 8のコピーをインストールします。よく知らない場合は、Drupal 8のインストールドキュメントをお読みください。

この例では、次の手順でDrupalをインストールします:

1.1: マルチサイトのルートサイト用のデータベースを作成します。例:d8multisite。

1.2: Drupal 8のコピーをダウンロードしてウェブディレクトリに解凍します。

1.3. ルートサイトのバーチャルホスト定義を作成します。バーチャルホスト設定についてお読みください。Apacheバーチャルホスト設定の例:Nginxについては公式レシピを参照してください。

<VirtualHost *: 80>

   # настройка виртуального хоста для многосайтового корневого сайта Drupal 8

   ServerAdmin me@domain.com
   DocumentRoot / var / www / d8multisite
   Имя_сервера d8multisite.com
   ServerAlias www.d8multisite.com
  
   <Directory />
     Опции FollowSymLinks
     AllowOverride Нет
   </ Directory>
  
   <Directory / var / www / d8multisite>
     Опции Индексы FollowSymLinks MultiViews
     AllowOverride All
     Заказать разрешить, отказать
     Разрешить от всех
   </ Directory>

   ErrorLog $ {APACHE_LOG_DIR} /d8multisite_error.log
   LogLevel предупреждают
   CustomLog $ {APACHE_LOG_DIR} /d8multisite_access.log в сочетании

</ VirtualHost>

1.4: d8multisite.comにアクセスしてインストールインターフェースに従い、Drupalをインストールします。

ステップ2:マルチサイト用の最初のサイトを設定する

ルートサイトを設定したので、site1という名前の最初のサイトの設定を始めることができます。このプロセスの手順は次のとおりです:

2.1. マルチサイトにsite1用のフォルダーを作成します:/d8multisite/sites/site1.d8multisite.com

2.2: サイト1用のデータベースを作成します。例:d8multisite_site1

2.3. /d8multisite/sites/example.sites.phpを/d8multisite/sites/sites.phpという名前でコピーします

2.4: ファイルの末尾が次のようになるようにsites.phpを編集します:

# make the root drupal site aware of site1:
$sites['site1.d8multisite.com'] = 'site1.d8multisite.com';

2.5: site1用のバーチャルホストを作成します。このバーチャルホストは、サイトのサブディレクトリではなく、ルートサイトを指す必要があることに注意してください。また、このサイト用に新しいバーチャルホスト設定を作成する代わりに、新しいサイトをルートサイトのServerAliasとして追加するだけでもよいことにも注意してください。ただし、このApacheの例では、site1用に別のバーチャルホストを作成します:

<VirtualHost *:80>
  ServerAdmin me@domain.com
  DocumentRoot /var/www/d8multisite
  ServerName site1.d8multisite.com
  
  <Directory />
    Options FollowSymLinks
    AllowOverride None
  </Directory>
  
  <Directory /var/www/d8multisite>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>

  ErrorLog ${APACHE_LOG_DIR}/site1-d8multisite_error.log
  LogLevel warn
  CustomLog ${APACHE_LOG_DIR}/site1-d8multisite_error.log combined

</VirtualHost>

2.6. /d8multisite/sites/default/default.settings.phpを、新しいサイトのディレクトリにsettings.phpとしてコピーします:

#from the drupal root folder
cp sites/default/default.settings.php sites/site1.d8multisite.com/settings.php

2.7: サイトのドメインにアクセスして、site1のDrupalインストールプロセスを完了します。

マルチサイトにサイトを作成するたびに、これらの手順を繰り返すことができます。example.comやsite1.anotherdomain.comなどのドメインを使用することもできます。ドメイン、URL、サイトのサブディレクトリ名の詳細をご覧ください。

ステップ3:サイトごとのモジュールを有効にする

場合によっては、マルチサイト内のサイトの1つに独自のモジュールを持たせたいことがあります。これを有効にするには、ターゲットサイトのフォルダー内に適切なフォルダーを作成するだけです。Drupal 8のマルチサイトフォルダー構造を参照してください。

この例では、site1が独自のモジュールを持てるようにします:

1. site1サブディレクトリに「modules」フォルダーを作成します:/d8multisite/sites/site1.d8multisite.com/modules

2. chown www-data /d8multisite/sites/site1.d8multisite.com/modules を使用して、このフォルダーへのapacheの書き込みアクセスを許可します

3. これを確認してください:
                1) site1サブディレクトリの外(つまりルートサイト)に移動して、drush drush dl pathautoPathautoモジュールをインストールします

                2) site1サブディレクトリに移動して、drush drush dl dsでdsモジュールをインストールします

                3) 両方のサイトにアクセスして確認します:
                                            - Pathautoが両方のサイトで利用可能
                                            - Display Suiteがsite1でのみ利用可能

注記:テーマ、ライブラリ、ファイルでもこれができると想定されています。ここでは追加のテストとドキュメントが必要です。

マルチサイトでのdrushの使用

-l オプションを使用できます:

drush -l example.com command

またはサイトエイリアス:

drush @alias command

使用されているエイリアスを確認するには、次を実行します:

drush site:alias

その出力の例は次のようになります:

@sub1.dev ':
   root: /var/www/mydomain.com/web
   uri: «https://sub1.mydomain.com»
@default.dev ':
   root: /var/www/mydomain.com/web
   uri: «https://sub2.mydomain.com/»
@third.dev ':
   root: /var/www/mydomain.com/web
   uri: «https://thirddomain.com»

正しいdrushコマンドは次のようになります:

drush @sub1 updb

注記: エイリアスでは「.dev」を使用しません