web-dev-qa-db-ja.com

マルチサイトを使用している場合、Drushを使用して特定のサイトをターゲットにする方法は?

Drupalマルチサイトがセットアップされています。2つのサイトが含まれていますが、コアDrupalインストールにはサイトがありません。

Drushでは、@ sitesを使用してすべてのサイトをターゲティングできます。例えば:

  • drush @sites -y cc all-すべてのマルチサイトを更新します
  • drush @sites -y en jqmulti-すべてのマルチサイトにJqueryをインストールします

ただし、コアフォルダーにサイトがインストールされていないため、コアサイトが見つからないというエラーメッセージが常に表示されます。 Drushを使用してサブマルチサイトのみを更新し、コアマルチサイトをスキップする方法はありますか?

サブサイトのサイトディレクトリからDrushを実行できることはわかっていますが、すべてのサイトをターゲットにしたい場合は、あまり便利ではありません。

私がマルチサイトを使用している理由は、両方のサイトがテーマとユーザーログインを共有しているためです。

6
big_smile

「コアサイト」とは、sites/defaultにあるサイトですか? sites/default/settings.phpのsettings.phpファイルを削除するだけのオプションですか?

エイリアスファイルでエイリアスを管理する場合は、ファイル~/.drush/mysite.aliases.drushrc.phpを作成します。

$root = '/path/to/root';

$aliases['site1'] = array(
  'root' => $root,
  'uri' => 'site1.com',
);

$aliases['site2'] = array(
  'root' => $root,
  'uri' => 'site2.com',
);

例は this link を参照してください。

次に、1つのサイトを参照するには:

drush @site1 status

  • または-

drush @mysite.site1 status

すべてのサイトを参照するには:

drush @mysite status

たぶん、これよりももっと豪華にしたいかもしれません。エイリアスファイルにさらにエイリアスがある場合(「dev」サイトや「live」サイトの場合など)、独自のリストを作成できます。

$aliases['dev'] = array(
  'site-list' => array('site1', 'site2'),
);

次に:

drush @mysite.dev status

必要に応じて、エイリアスファイルを/path/to/root/drushまたは/path/to/root/sites/all/drushに保存することもできますが、これを行うと、コマンドラインで--rootを指定しない限り、Drushはエイリアスファイルを見つけることができません。または、作業ディレクトリを/path/to/rootのどこかに変更します。

7
greg_1_anderson

リモートサイトでコマンドを実行するには、新しい Drushエイリアスファイル をセットアップする必要があります。通常、ファイルには<project_name>.drushrc.phpという名前を付けます。
次に、このファイルを、ログインしたユーザーのホームディレクトリの.drushディレクトリに配置する必要があります。

サンプルDrushエイリアスファイルのこのリンク を参照してください。

ファイルを設定した後、drush cc drushを実行してDrushキャッシュをクリアし、新しいエイリアスファイルを取得できるようにします(注:これは一部の環境では必要ない場合があります)。

UPDATE:AcquiaまたはPantheonでリモートサイトをホストしている場合は、エイリアスファイルを直接ダウンロードできます。

のエイリアスファイルをダウンロードするには

  1. Acquia、https://accounts.acquia.com/account/<login_id>/security?site=insightにアクセスし、リンクからエイリアスをダウンロードします。 acquia
  2. パンテオンの場合、https://dashboard.pantheon.io/users/<user_id>#sites/listにアクセスしてエイリアスファイルをダウンロードします pantheon
1
AjitS