マルチサイトdrupalのホスティング
複数のDrupalサイトを実行している場合は、管理を簡素化することができますし、マルチサイト機能を使用してサイトをアップグレードすることができます。マルチサイトでは、複数のサイト間(コアコード、貢献モジュール、およびテーマを含む)単一のDrupalのインストールを共有することができます。
各アップグレードは一度だけ実行する必要があるので、これはコードを管理するために特に有用です。各サイトは、独自のデータベースと独自の構成設定がありますので、各サイトは、独自のコンテンツ、設定、有効化モジュール、および有効なテーマを持つことになります。しかし、サイトは、コードベースとWebドキュメントルートを共有しているので、複数の管理者とセキュリティ上の問題があるかもしれません。 (詳細については、以下の「セキュリティ問題」を参照してください)。
プロセスの概要
共有Drupalのコードベースを使用して新しいサイトを作成するには、以下の手順を完了する必要があります。
- (すでにあなたはまた、インストール手順に接頭辞を定義することで、これを使用することができ、既存のデータベースがある場合)、サイト用に新しいデータベースを作成します。
- 新しいサイトの名前を持つのサイト 'ディレクトリの新しいサブディレクトリを作成します。以下を参照してくださいまたはサブディレクトリに名前を付ける方法についてはdefault.settings.phpファイルのコメント。
- 前の手順で作成したサブディレクトリにファイルサイト/デフォルト/ default.settings.phpをコピーします。 settings.phpする新しいファイルの名前を変更します。
- Drupalの8の場合のみ:サイト/ sites.phpにファイルサイト/ example.sites.phpをコピー(名前の変更)により、マルチサイト機能をアクティブにします。あなたは、サイトの別名を必要としない限り、ファイルを編集する必要はありません。正常部位の選択規則が適用されます。
- 新しいサイトのディレクトリのパーミッションを調整し、設定ファイル(のsettings.php)に書き込み権限を付与します。
- あなたはこのようなsubd.example.comなどexample.com/subdirはなくサブドメインとしてサブディレクトリを使用している場合は、おそらく、各サイトのシンボリックリンクを作成する必要があります。詳細については、以下のサブディレクトリマルチサイトを参照してください。
- Webブラウザでは、新しいサイトのURLに移動し、(あなたは無限のリダイレクトループを取得する場合、ファイルinstall.phpのドキュメントルートが存在する場合は、チェックしてください)標準Drupalのインストール手順を続行します。
また、Drupalは、Apacheの設定を上書きできるようにするために(多くの場合、Apache用のhttpd.confという名前の)Webサーバーの設定ファイルを変更する必要があります。これは、Drupalののすべてのインストールのための真実であるとマルチサイトインストールに固有ではありません。追加情報は、ベストプラクティスで提供されています:インストール・ガイドの共有環境のセクションではDrupalのためのApacheとPHPの設定します。
プロセスの詳細
ドメイン、URL、およびサイトサブディレクトリ名
サイトディレクトリの新しいサブディレクトリには、サイトのURLから構築された名前を持っています。たとえば、www.example.comのための構成は、サイト/ example.com /のsettings.phpになります。あなたは、ディレクトリ名の一部として「www」を含める必要はありません。
Drupalはexample.comのすべてのサブドメインの同じ部位/ example.comディレクトリを使用します。サブドメインのサイトのサブディレクトリにマッチする、代替がない限り、WWWを含みます。例えば、URLのsub.example.comはsub.example.com /サイトから提供されるだろう。それが存在する場合。
このようexample.com/subdirなどのサブディレクトリURLについて。サイト/ example.com.subdirを - と作業サブディレクトリマルチサイトを得ることに、以下のセクションを読んで次のようにサイトのサブディレクトリに名前を付けます。
あなたは非標準のポートにインストールする場合は、ポート番号は、サブドメインの最初の部分として扱われます。例えば、www.example.com:8080は、サイト/ 8080.example.comからロードすることができました。そのディレクトリが存在しない場合は、Drupalはその後、サイト/ example.comを探します。本物のサブドメインが好き。
サイト固有のモジュールやテーマ
各サイトの構成は、標準の「モジュール」と「テーマ」ディレクトリにインストールされたものに加えて、独自のサイト固有のモジュールやテーマを持つことができます。サイト固有のモジュールやテーマを使用するには、サイトの設定ディレクトリ内の「モジュール」や「テーマ」ディレクトリを作成します。 sub.example.comは、カスタムテーマや他のサイトにアクセスできないようにしてくださいカスタムモジュールを持っている場合たとえば、セットアップは次のようになります。
ドキュメントルート
頻繁に混乱の一つの領域はDrupalのマルチサイトインストールでウェブサーバのドキュメントルートは、すべてのサイトで同じであるということです。以下の3つのサイトを持つ例:example.com、sub.example.comとexample.com/site3そこシングルDrupalのディレクトリとなり、すべてのサイトが同じのindex.phpファイルを呼び出します。
いくつかのウェブホストは、自動的に新しいドメインまたはサブドメインを作成する(すなわち、example.com)新しいディレクトリを作成します。このケースでは、メインのDrupalのディレクトリへのシンボリックリンクにそれを作るか、いっそのドメインまたはサブドメインを作成するときに、あなたがDrupalのインストールされているサイトと同じドキュメントルートを使用するように設定する必要があります。
サブディレクトリマルチサイト
あなたはDrupalのマルチサイトのサブディレクトリのURLではなく、サブドメインまたは異なるドメインのURLを使用して作業を取得しようとしている場合は、問題が発生することがあります。あなたはこのようなサイト/ example.com.subdirなどのディレクトリを作成することから始めましょう。そしてそこのsettings.phpファイルを置きます。これはあなたのために働く場合は、素晴らしいです!しかし、それはおそらくないでしょう。
ローカルワークステーションのローカルホストの別名
多くのシステムでは、ローカルワークステーションのローカルホスト名の別名を作成するには、「hosts」ファイル内のエントリを作成することが可能です。ローカルホストのエイリアスを作成することにより、ローカルコンピュータの両方に、このようlocaldev1.example.comやlocaldev2.example.comとして名を作成することが可能です。
あなたの地元のWebルートにサブディレクトリを使用する一方場合は、このようなシンボリックリンクを作成します。
そして、あなたのサイトフォルダlocalhost.subdir名前を付けます。
ドメイン名の変更
サイトはサイトディレクトリの下の特定のサブディレクトリに生産された後、サブディレクトリも、WebサイトのURLが変更された場合、名前を変更するべきではありません。言及は、(システムやファイルなど)いくつかのデータベーステーブルは、これは「サイト/ www.mydomain.comを。」代わりに、サイトのディレクトリの名前を変更するのは、古いものから新しいURLへのシンボリックリンクを作成することができます。サイトディレクトリに移動し、次のコマンドを使用します。
$ LN -s /path/to/drupal/sites/old.domainname.com new.domainname.com
セキュリティー上の問題
あなたは、同じ人や相互信頼性の高い小グループのいずれかではありませんすべてのサイトの管理者が同じコードベースから実行されている状況では、Drupalののマルチサイト構成を使用して再考することもできます。その理由は、Drupalサイト上の完全な管理者権限を持つ誰もが(でもサイトへのFTPアクセスせずに)、様々な手段を通じて、そのサイト上の任意のPHPコードを実行できるということであり、その任意のPHPコードは、別のサイトに影響を与えるために一つのサイトから利用することができ、二つのサイトは、同じHTTPのドキュメントルートにあり、同じDrupalのコードを共有する場合。
あなたは完全にあなたは、知識豊富慎重に、かつ悪意のないように、同じDrupalのコードベースから実行して検討しているサイトの管理者のすべてを信頼しない限り、あなたは、ウェブサーバの完全に別の分野で彼らのDrupalサイトのインストールを検討する必要がありますそれは、PHPスクリプトを介して相互に影響を与えることができません。
時折、Drupalはセキュリティ上の脆弱性の対象となります。 Drupalのコアコードへの不正ユーザアクセスを許可するバグ。ハッカーはあなたのコアコードへのアクセス権を持っていたら、彼らは1回の攻撃を介してすべてのあなたのマルチサイトへのアクセス権を持っています。非マルチサイトは、脆弱性が確保されるために十分な時間を提供するかもしれない別の攻撃を、必要としています。
ときにマルチサイトします
マルチサイトインストールを使用するか、あなたが言うことができないかどうかについての一般的なルールとして:
- サイトが同じクライアントのためであり、それは各サイトの範囲を簡単にすることであるならば、それを考慮してください。
- サイトが機能的に類似している場合、同じモジュールを使用するか、または同じDrupalの分布を使用し、それを考慮してください。
- あなたは、管理し、維持するためのリソース/スタッフが、多くのサイトが限られている場合は間違いなくそれを考慮してください。
- 機能や範囲が異なる場合は、マルチサイトを使用しないでください。
- あなたが複数のディストリビューションを管理している場合は、マルチサイトを使用しないでください。
- クライアントが異なる場合は、マルチサイトを使用しないでください。
長所、短所、およびいくつかの提案は、ユーザの視点の幅広い視聴者によって議論されているDrupalconオースティン(2014)マルチサイト上の会話/議論はユーチューブで提供されています。
あなたのサイトはDrupalのモジュールのセキュリティアップデートについては、可能な限り最新滞在したいときマルチサイトが人気ですが、あなたは異なる機能を持っている場合、それは独立して各サイトをテストするために多くの時間がかかるため、これを行うのはより困難です。あなたはマルチサイトをやっている場合は、更新は常に可能なわけではないすべてのサイトを同時に実行する必要があります。これが問題であるか、非常に大規模なマルチサイトを持っているが、まだアプローチを好む場合は、少し違ったが、同様の利点をマルチサイト管理を扱うDSLM呼ばdrushプラグインを模索することを検討してください。
異なる機能を持つサイトでは、通常、それぞれがテストしてバックアップする必要があるため、異なる時間にアップグレードされてしまいます。 drushに利用できる@sitesターゲットはマルチサイトへのコマンドの大部分のアプリケーションを簡素化してもサイトの更新やバックアップは、マルチサイトの有無にかかわらずdrushで自動化することができます。
推奨マルチサイト構成の詳細
これらは、ハードと高速のルールはありませんが、確かにマルチサイトでコーナーに自分自身を塗るからあなたを防ぐことができます。
展開/サイトのアップグレードを管理するためにDrushを使用して、
Drushはdrupalのサイトに対してスクリプトコマンドのためにできる強力なCLIです。マルチサイトと組み合わせると、彼らはスケールで管理することがはるかに容易になります。 (単一のコマンドを使用しているサイト/対象のグループを参照できるように)Drush別名が正常に大規模なマルチサイト配置を管理することが重要です。例えば、多くの教育機関は、単一のマルチサイトをオフに実行しているはるかに超える100〜1000のサイトとマルチサイトを実行します。
サイトを管理するために使用しますsites.php
ベース代わりアドレスのマルチサイトのサイトを参照するために含ま部位/ sites.php(Drupalの7.xの)またはサイト/ sites.example.php(Drupalの8.x.x)を使用します。これは、あなたがより簡単に展開(例えばDEV、舞台、PROD)間を移動することができます。従来のマルチサイトの設定は、サイト/ my.new.domain.address /のsettings.phpのようなディレクトリを作成する必要がありますが、あなたはそれを動作させるために、フォルダ名としてドメインを使用する必要はありません。 sites.phpでは、「my.new.domain.address」=>「プロジェクト/バージョン1」のような参照を作ることができます。これにより、あなたはそれが可能よりour.dev.addressのように見えるDEVにsites.phpマッピングを使用して作成し、まだそれがその対象としてバージョン1 /投影するポイントがあります。