Drupal 8マルチサイト - 概要
Drupalのマルチサイトインストールを使用する主な理由は、同じバージョンのDrupalコアがインストールされている複数のDrupalサイトを管理する際の時間を節約することです。Drupalコアの新しいアップデートがリリースされるたびに、各サイトではなく1つのコードセットでそのアップデートを実行するだけで済みます。ただし、欠点もあります。ただし、Aegirホスティングシステムを使用すると、それらは緩和されます。
それ以外の場合、マルチサイトインストールを手動で管理しようとする際に生じる複雑さと潜在的な問題には、かなり高度な技術スキルが必要です。このレベルの知識を持つユーザーは通常「コマンドライン」の使用に慣れており、コマンドラインから管理対象の各サイトを2分未満で更新できます。Aegirを使うと、さらに速くなります。プラットフォーム全体(Aegir用語ではマルチサイトコードベース)を新しいバージョンに移行する「ポイントアンドクリック」モードで、すべてのサイトをアップデートのキューに入れることができるためです。動作しないサイトは自動的にロールバックされます。
マルチサイトの基本
Drupalサイトには、ウェブサーバープログラム(ApacheやIISなど)、データベースプログラム(MySQLやMSSqlなど)、PHPインタープリターが必要ですが、サイトに固有のものはすべて、データベースとコードベースに含まれています。
Drupalコアのアップデートは、基本的にコードベースの置き換えです。データベースは変更されませんが、コードベースを置き換えた後、各サイトで「アップデートスクリプト」[YOURSITE/update.php]を実行する必要があります。
サイトごとに1つのデータベースを使用する理由
データベースはバックグラウンドで動作し、コードベースによって管理されます。一般に、データベースについてまったく心配する必要はありません。
複数のサイトに1つのデータベースだけを使用しようとしても、効果はほとんどないか、まったくありません。1つのデータベースだけで得られるわずかなディスクストレージの節約は、それによって生じる可能性のある潜在的な問題によって大幅に相殺されます。
- 1つのサイトのデータが、あなたや他のユーザーによって誤って破損したり、悪意のある攻撃によって破損したりすると、すべてのサイトに影響を与える可能性があります。
- データベースは多数の「テーブル」で構成されています。マルチサイト構成からサイトの1つを移行することにした場合、どのテーブルが各サイトに属し、どのテーブルがすべてのサイトに共通かを判断するのは困難です。
サイトごとに1つのコードベース
理論的には、同じバージョンのDrupalを実行するすべてのサイトに1つのコードベースを持つことは、時間とディスク容量の節約になるでしょう。
ディスク容量は安価なので、それは忘れましょう。
上記のように、新しいコアバージョンのリリース後の各Drupalサイトのアップデートは、コマンドラインから数分で実行できます。したがって、マルチサイト設定の実装とトラブルシューティングの方法を学ぼうとすることよりも、このスキルの習得に時間を費やす方がよいでしょう。
コードベースの共有は、すべてのサイトが同じモジュールと設定を使用している場合にのみ最も役立ちます。例えば、リーグ内の各スポーツチームの個別の特徴的なサイトをすべて管理している場合などです。
ただし、管理している複数のサイトが異なるモジュールを使用している場合、すべてのサイトが使用していないモジュールでエラーが発生し、すべてのサイトの動作が中断されるリスクがあります。
Drupal 8マルチサイトの設定
Drupalサイトをマルチサイト構成で設定したい場合は、ここから始めてください。