Drush (Drupal shell) install


#1 composerのインストールとエイリアス設定

```bash:
curl -sS https://getcomposer.org/installer | php
php composer.phar
alias composer='php ~/.composer/composer.phar'
#確認
composer help
```

#2 Drushインストール

```bash:
composer global require drush/drush:7.*
PATH=~/.composer/vendor/bin:$PATH
export PATH
#確認
drush --version
```

#3 Drushのコマンド
■システム関連
・ヘルプ
$ drush help commandname

・ステータス
$ drush st (status)

・Run cron
$ drush cron
(drush core-cron)

・ログ確認
$ cd /var/www/yoursite
$ drush ws
$ drush watchdog-show --count=100

・キャッシュクリア
$ drush cache-clear
$ drush cc all

・インストールモジュール一覧確認
$ drush pm-list --type=Module --status=enabled

・インストールモジュール詳細確認
$ drush pm-info feeds

・インストール／アンインストール
$ drush dl views
$ drush -y en views
$ drush dis views
$ drush pm-uninstall views ctools

モジュールのURLでダウンロードするbash function
function drdl() {
drush dl ${1##*/}
}

・Drush Site Aliases
$ drush username@server.com/path/to/drupal#mysite.com status
$ drush @mysite statusお気に入り詳細を見る
drupal core のアップデート
出典
drupal core のアップデート | Drupal 定番モジュール一覧 / drupal module list
- バックアップ
$ sudo drush archive-dump
- メンテナンスモード
$ drush vset maintenance_mode 1 --yes
- アップデート, キャッシュクリア
$ sudo drush pm-update
$ drush cc all
- メンテナンスモード解除
$ drush vset maintenance_mode 0 --yes
■テーマ
・テーマダウンロード、インストール
$ sudo drush dl omega
$ drush en omega

・テーマ一覧
$ drush pm-list --type=theme

・テーマ設定
$ drush vset theme_default shiny
■Webサイト構築
・Apache設定確認
$ grep -B2 AllowOverride /etc/apache2/apache2.conf
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
設定変更の際には、Webサービス再起動。
$ sudo service apache2 restart

・Drupal ダウンロード
$ cd /var/www/html
$ sudo drush dl drupal --drupal-project-rename=d7dev

・インストールスクリプト実行（データベースも作成されます）
$ cd d7dev
$ sudo drush si standard --db-url=mysql://dp_db_admin:dp_db_password@localhost/db_d7dev --db-su=root --db-su-pw=KKGVVgwGfXm7 --site-name="drupal7 dev site"

・ファイル権限設定
$ sudo chmod a+w sites/default/files
■Webサイト移行
コマンドひとつで、データベースとWebコンテンツをまとめて移行できます。
・エクスポート、バックアップ
$ cd /var/www/source 
$ sudo drush archive-dump

・ファイル転送
サーバが異なる場合は、archivedumpをscp等でファイル転送。

・インポート
ドメイン名変更の場合はapache関連の設定変更(/etc/apache2/apache2.conf)、サイト名変更の場合はdrupal設定変更に留意。
$ cd /var/www
or 
$ cd /var/www/html
$ sudo drush archive-restore /path_to/drupal_archivedump.tar.gz --destination=./target --db-url=mysql://dp_db_admin:dp_db_password@localhost/db_target --db-su=root --db-su-pw=KKGVVgwGfXm7

・VirtualHost設定

- 設定ファイル作成
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/d7dev.example.com.conf
$ sudo vim /etc/apache2/sites-available/d7dev.example.com.conf
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName d7dev.example.com
#ServerAlias www.example.com
DocumentRoot /var/www/html/d7dev
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/d7dev.error.log
CustomLog ${APACHE_LOG_DIR}/d7dev.access.log combined
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>

- 同様の設定を作成したい場合
$ cd /etc/apache2/sites-available/
$ sed -e 's/d7dev/anothersite/g' d7dev.example.com.conf | sudo tee anothersite.example.com.conf

- 設定反映
$ sudo a2ensite example.com.conf anothersite.example.com.conf
$ sudo service apache2 restart
■コンテンツ作成

・フィールドタイプ確認
$ drush field-info types

・フィールド作成 Create two new fields(name,field_type,widget_name).
フィールド名が他と重複しないように気をつける必要があります。
$ drush field-create article \
city,text,text_textfield \
subtitle,text,text_textfield

・フィールド削除
$ drush field-delete city --bundle=article 


・ダミーデータ作成
$ drush generate-content
$ drush genc 20 --types=latest_news
imagepng(): Unable to open '/var/www/html/d7dev/sites/default/files/tmp/imagefield_Tbr9ZO.png' for writing: [warning]
Permission denied image.devel_generate.inc:91
上記エラーの場合、sudoで。
$ sudo drush genc 20

・Delete all - ノードの一括削除できます。開発時に便利。
https://drupal.org/project/delete_all
$ sudo drush dl delete_all
$ drush en delete_all
$ drush delete-all article page