web-dev-qa-db-ja.com

マルチサイト環境でのモジュールのインストール/更新

私はDrupal 8インストールをマルチサイト構成で複数のドメインでインストールしている最中です。1つのドメイン/サイトがモジュールを更新する場合、もう1つのサイトは、そのモジュールを使用する可能性のあるユーザーは、その更新を認識しません。

私は次のいずれかを行う必要があります:a)モジュールをsites // site name // modulesディレクトリに移動するか、b)各サイトに別のdrupal8インスタンスを作成します

それとも私が見逃している何かがありますか?最も役立つ推奨事項。

4
user189842

マルチサイトのオプションについてはかなりよく説明しました。

  1. / modulesにモジュールを配置することによる多くの共有コード
  2. / sites/[sitename]/modulesに移動することによるモジュールコードのコピーがたくさんありますが、更新するコアのコピーは1つだけです。
  3. マルチサイトの代わりに複数のインスタンスを使用します(同じコードのコピーがたくさんありますが、他のものにリスクを与えることなく1つを更新する機能)。

マルチサイトは、サイト間の構成の変動が少ない場合に最も有用であり、コアの同じコピーとモジュールを(すべてではないにしても)ほとんどのサイトで安全に使用できます。コピー間のバリエーションが多いほど、マルチサイトを破棄して複数のインスタンスに移動するほうが理にかなっています。

使用中のマルチサイトの非常に大きなインスタンスがいくつかありますが、マルチサイトには価値があるよりも多くの頭痛をもたらすとかなり強く感じているコミュニティの人々もいます。

3
acrosman

1つのホスティングに20を超えるサイトがあるD7マルチサイトセットアップがあります。これが私が提案するいくつかのことです:

拡張機能の整理

  • サイトが多くのモジュールを共有することを計画している場合、それらのcontrib/customモジュールをグローバルモジュールディレクトリに置くことは完全に問題ありません。
  • サイト固有のcontrib/customモジュールは、関連するサイトのディレクトリに移動します(例:_sites/greenpillp.com/modules_)。

コア/モジュール/テーマを更新する場合

  • まず、更新の説明をよく読み、カスタムコードや依存関係(存在する場合)を変更する必要があるかどうかを確認します。
  • とても重要です!データベースとファイルをバックアップして、すべてのサイトで問題が発生した場合の自殺傾向を回避します。笑。
  • モジュール/テーマの更新の場合、1つのサイトですべての更新(有効になっていないモジュールも含む)をチェックし、UIを使用して更新をダウンロードできます。通常、これを行う前に_index.php_にexit('Site is under maintenance');を追加します。これにより、すべてのサイトが一時的に無効になります。
  • データベースの更新については、次の2つの方法で実行できます。
    • 時間のかかる方法:サイトごとに_update.php_を1つずつ実行します。
    • 時間を節約する方法:drushを使用して、すべてのサイトにアクセスすることなく、コマンドラインから1つずつ更新します。次に作成するときに自動化するのに役立つスクリプトを作成して保存できます。

これがお役に立てば幸いです。何かを見逃したり、これを管理する簡単な方法がある場合は、コメントを残してください。次回、Drupalのマルチサイトインストールを更新するときに試すことができます。

0
Jigarius

モジュールがすべてのサイトに共通である場合、それらをグローバルにします。つまり、そのモジュールを/ modules/customディレクトリに配置します。そのため、すべてのサイト(たとえば、sites/site1.com、sites/site2.com)で同じコードを共有します。モジュールのコードを変更した場合、drushを介してモジュールを使用するすべてのサイトにモジュールをキャッシュまたは再インストールして、その変更を適用する必要があります。

0
Vaibhav Gidde