メインコンテンツに移動

drushの導入

drush(drupal shell)の導入について記載します。
このあと、MediaプロジェクトやMediaFrontプロジェクトサイトで配布しているmakeプロファイルを使ってサイト構築することを前提にdrushを導入しています。なお、レンタルサーバの環境に依存する箇所がある場合は、その旨記載するように心がけます。

drushのバージョンはDruaplのバージョン表記には無関係ですが、drushプロジェクトサイトではDrupalのバージョン表記が使われている場合もあります。
その場合はDrupalのバージョンでのテスト済みなのかそれに特化した設定がされているのか・・・その辺は定かではありません。

※他のプログラム同様、そのプログラムを誰が使うかでプログラムの置き場所や設定ファイルの場所は決定してください。
ここでは、レンタルサーバでユーザ権限しかない場合($HOME以下に設定)での導入方法になります。
他のDrupalサイトでも併用できるようにできるだけサイト間で共用できるように設定しています。

これ以降の作業はGUI操作のファイル転送ソフトでも可能かもしれませんが、端末エミュレータソフトでリモートログインしてCLIで操作することを推奨します。※なお文字化けを回避するために端末の表示はUTF8に設定しておいてください。

1.drushの入手

drushのDrupalプロジェクトサイトからバージョン4.5をダウンロードします。

※7.x-4.5をダウンロードしました。
※ダウンロードしたファイルの解凍先のREADME.txtにインストール方法や設定方法の記載があります。

2.drushの設定

(1)drushの設置

ダウンロードしたファイルをサーバの$HOMEへアップロードします。
その場所で解凍すれば$HOME/drush以下にdrush一式が配置されます。

(2)実行権限の付与

$HOME/drush/drushに実行権を付与します。
chmod u+x $HOME/drush/drush
実行権が付与されたことを確認します。
ls -la $HOME/drush/drush

(3)パスの設定

すでにパスが通っている場所にリンクを作成するか、新たにパス変数に$HOME/drushを追加するかになります。
今回は新たにパス変数に追加することにします。
以下はシェルがbashの場合です。

$HOME/.bashrcに追加します。
PATH=$PATH:$HOME/drush;export PATH

デフォルトでは/tmp(=/var/tmp)に中間ファイルが作成されますが、処理が失敗するとファイルが消去されません。
出力先を変更する場合は以下を追加します。

export TMPDIR=/home/USERNAME/tmp
使用するPHPを限定するケースにはDRUSH_PHP変数でPHPのパスを指定できます。
export DRUSH_PHP=/usr/local/bin/php

※/usr/local/bin/phpを使う場合

$HOME/.bashrcを再読み込みします。
source .bashrc
drushが実行できるようになっているかを確認します。
drush

※helpメッセージが出力されれば正常です。

(4)drush環境設定ファイルの配置

環境設定ファイルは/etc/drush、$HOME/.drushやdrushディレクトリに配置することが可能です。
その他、個別でDrupalルートディレクトリやファイルシステムディレクトリに設置できるようです。
※$HOME/drush/drushがdrush.phpのラッパーの役割をしていますので、drushをカスタマイズすれば自由に設置できそうです。

ここでは$HOME/.drushに配置するように設定します。

$HOME/.drushディレクトリを作成します。
mkdir $HOME/.drush
$HOME/drush/exampleにある次のファイルを$HOME/.drushにコピーします。
example.aliases.drushrc.php⇒aliases.drushrc.php
example.bashrc⇒.bashrc
example.drush.ini⇒drush.ini
example.drushrc.php⇒drushrc.php

※コピーするときにはファイル名の「example.」を取り除きます。

(5).bashrcの編集

$HOME/.drush/.bashrcファイルは、drushコマンドの入力を簡単にする目的でユーザ個別のエントリを定義するためのものだと思います。
※デフォルトのままにしました。

(6)drush.iniの編集

drush版のphp.iniファイルです。
ディレクティブの値をdrush使用時のみ変更するにはこのファイルに記述すればよいのだと思います。
※以下はdrush core-cli(drushシェル起動時にエラーになりますのでその対応です)

     55 ;error_reporting = E_ALL | E_NOTICE | E_STRICT
     56 error_reporting = E_ALL

55行目をコメントにして、56行目に追加しています。
エラーレベルをE_ALLだけに変更しています。

(7)php.iniをコピー

サーバで使用しているphp.iniファイルをコピーするかファイルへのリンクを作成します。
以下のコマンドでリンクを作成しました。

ln -s $HOME/www/php.ini php.ini

※サーバで使用しているphp.iniが$HOME/www/php.iniであると想定しています。

(8)aliases.drushrc.phpの編集

drushコマンドをDrupalルートディレクトリで実行する場合は、@selfやdefaultが使用できるようです。
Drupalルートディレクトリ以外では標準のエイリアスは使用不可になるので実行が面倒になります。
ここでエイリアスを登録しておけば場所には関係なくエイリアスを指定して実行できます。

aliases.drushrc.phpファイルの先頭(コメント文)に説明が記載してありますので、要件にあうように編集してください。
最後のほうに3パターンの例がありますので雛形として使えるかもしれません。
このエイリアスは次の(9)drushrc.phpに対するエイリアスといえます。

現行のD6環境の設定も作ればよいのですが、今回導入したdrushはD6ではサポートしていない機能が含まれるためあまり好ましくありませんので1サイトのみとして設定しました。

$aliases['demo'] = array(
  'root' => '/home/XXXXX/wwww/YYYYY',
  'uri' => 'dragon.sakura.tv',
 );

※aliases.drushrc.phpはPHPファイルですので行頭の<?phpは削除しないようにしてください。

以下のコマンドでエイリアスを確認できます。
drush site-alias

さらにエイリアスを指定すれば設定した内容が表示されます。

drush site-alias @demo
ステータスを表示するには以下を実行します。
drush @demo core-status

※site-aliasやstatusは省略形も使用できます。詳細はdrush(引数なし)で実行したときの一覧を参照してください。
※core-statusの場合はsite-aliasと異なりエイリアス指定が先になります。

以下、aliases.drushrc.phpの記載にあるようにすれば2つのサイトのエイリアスグループを作成できます。
 * For example:
 *
 *   # File: mysite.aliases.drushrc.php
 *   $aliases['dev'] = array(
 *     'root' => '/path/to/drupal',
 *     'uri' => 'dev.mydrupalsite.com',
 *   );
 *   $aliases['live'] = array(
 *     'root' => '/other/path/to/drupal',
 *     'uri' => 'mydrupalsite.com',
 *   );
 *
 * Then the following special aliases are defined:
 *
 *   @mysite            An alias named after the groupname
 *                      may be used to reference all of the
 *                      aliases in the group (e.g. drush @mydrupalsite status)
 *
 *   @mysite.dev        A copy of @dev
 *
 *   @mysite.live       A copy of @live
 *

(9)drushrc.phpの編集

drushのPHP動作に関わる設定を行うファイルです。
※特に編集はしませんでした。

3.drush makeの設定(Optional)

makeプロファイルを使ってコアやモジュールをまとめてダウンロードをする用途などに使います。
今回の新規インストール方法では必要になります。

(1)drush makeを入手します。

drush makeのDrupalプロジェクトサイトからダウンロードします。

※6.x-2.3をダウンロードしました。
※プロジェクトサイトにあるのはDruapl6.x版ですが、付属しているmakeプロファイルがDrupal6.x用であるためmake実行時にそのmakeプロファイルが使えないだけで問題はありません。

(2)drush makeの設置

ダウンロードしたdrush makeをサーバの$HOME/.drushにアップロードして解凍します。

$HOME/.drush/drush_makeとなっていればOKです。

※解凍したdrush_make内にINSTALL.txtとREADME.txtがあるので参考にしてください。
※README.txtにはMakefileの作成方法の説明があります。

以上でdrush および drush makeの導入は完了です。
$HOME/.drush以下に環境ファイルを設置しましたが、他にも場所は選択できますので好みで決めてください。

今回はレンタルサーバ上に導入しましたが、設定をカスタマイズすればローカルPCから複数のサイトの管理ができるように思います。
複雑なことは慣れてから考えることにします。

Drupalバージョン
カテゴリ