Drush安装及命令与功能

Drush安装及命令与功能

7月 21, 2017     liumwei

在Drupal下使用Drush命令,将很多Drupal复杂的配置操作过程变得简单明了,而且也一些无法通过网页页面的操作过程变得有路可循。Drush其实是一个执行php命令的环境工具,其核心是执行php相关的脚本。本篇将说明,如何安装Drush及其命令使用。

一、Debian/Ubuntu下的Drush安装

低版本Drush安装,非常容易,采用命令:sudo apt install drush

高版本Drush,需要借助Composer来进行。Composer是一个php安装包管理工具,详情可见http://www.phpcomposer.com。利用它,可以完成Drush包版本的安装,从而在Drupal8中可以使用drush。下面是Drush高版本(8.1.6)的脚本(基于Ubuntu):

echo "1. Install composer"
sudo apt install composer
echo "export PATH='$HOME/.composer/vendor/bin:$PATH'" > ~/.bashrc #或者echo "export PATH='/home/${user}/.composer/vendor/bin:$PATH'" > ~/.bashrc
source ~/.bashrc
echo "2. Config composer mirror"
composer config -g repo.packagist composer https://packagist.phpcomposer.com
echo "3. Clone drush repo"
git clone https://github.com/drush-ops/drush.git $HOME/.drush
cd $HOME/.drush
echo "4. Checkout drush 8.1.6"
git checkout 8.1.6
echo "5. Install composer dependencies"
composer install
echo "6. Make it available system wide"
sudo ln -fs $HOME/.drush/drush /usr/bin/drush # 或者sudo ln -fs /home/${user}/.drush/drush /usr/bin/drush
drush --version

以上代码,可以放到shell脚本中来执行(这里下载)。下载后,在终端中执行./drush-apt-install即可。如果要从源码开始安装,还可以参考Jungle的博客。另外,你也可以下载这个deb包,安装drush 8.1.12版本(下载安装drush_8.1.12_all.deb)。

*说明:Windows下的Drush建议使用Acquica Dev Desktop集成环境来获得(这里下载:for Windows, for MacOS

基于Drush release来安装

打开https://github.com/drush-ops/drush/releases,查找drush.phar,然后将其下载。随即将其重命名及可执行权限设置,如下:

mv drush.phar drush && chmod +x drush

随即将其拷贝至/usr/bin目录下:

sudo cp drush /usr/bin/

再执行初始化操作:

drush init

如果出现下列信息,标明初始化成功:

Copied example Drush configuration file to /home/wei/.drush/drushrc.php                                 [ok]
Copied example Drush bash configuration file to /home/wei/.drush/drush.bashrc                           [ok]
Copied Drush completion file to /home/wei/.drush/drush.complete.sh                                      [ok]
Copied example Drush prompt file to /home/wei/.drush/drush.prompt.sh                                    [ok]

# Include Drush bash customizations.
if [ -f "/home/liumwei/.drush/drush.bashrc" ] ; then
  source /home/liumwei/.drush/drush.bashrc
fi

# Include Drush completion.

if [ -f "/home/wei/.drush/drush.complete.sh" ] ; then
  source /home/wei/.drush/drush.complete.sh
fi

# Include Drush prompt customizations.

if [ -f "/home/wei/.drush/drush.prompt.sh" ] ; then
  source /home/wei/.drush/drush.prompt.sh
fi

Append the above code to /home/wei/.bashrc? (y/n): y
Updated bash configuration file /home/wei/.bashrc                                                       [ok]
Start a new shell in order to experience the improvements (e.g. `bash`).  

此时,可以执行drush --version来查看版本了以及执行其他命令操作了。

二、Drush命令类型和功能release

使用之前,需要注意的是drush需要在网站所在的文件夹目录才能使用。例如,假定你的网站安装目录在/var/www/drupal之下,此时需进入到该目录,然后在终端下使用drush(比如使用drush下载views模块):

cd /var/www/drupal

drush dl views

1. 重置用户密码,比如修改管理员admin的密码:

drush upwd admin --password=123456 #或者采用下面的命令形式
drush user-password admin --password="000"

上面的命令实际上等同于:

php core/scripts/password-hash.sh "新密码" #drupal 8下
php scripts/password-hash.sh "新密码" #drupal 7下

2. 排除用户因密码多次输入错误,而被暂停登陆,机制如这个页面所描述的进行处理的:

drush php-eval 'db_query("DELETE FROM `flood`");'
drush user-unblock your_username

此外,我们还可以通过安装flood_unblock这样的模块来执行清理工作(admin/config/system/flood-unblock)。具体操作如下:

drush en flood_unblock -y && drush en flood_uublock all

极端情况下,我们可以使用drush user-login来生成登录站点的地址链接:

drush user-login #这个命令会默认生成如下字样的管理员登录链接地址。这个命令的用法为drush uli <user>,详情见此页面这个页面

当然,如果要想对flood机制进行进一步设置,还可以安装flood_control这样的模块,从而进入后台(admin/config/system/flood-control)进行设置。甚至还可以使用passwordless这样的模块来获得无密码登录

3. 清除缓存空间:

drush cc   #这种清除缓存的方式为交互式,需要手动输入数字究竟何种缓存,如下的提示:

Enter a number to choose which cache to clear.
 [0]   :  Cancel         
 [1]   :  all            
 [2]   :  drush          
 [3]   :  theme-registry
 [4]   :  menu           
 [5]   :  css-js         
 [6]   :  block          
 [7]   :  module-list    
 [8]   :  theme-list     
 [9]   :  registry       
 [10]  :  token          
 [11]  :  views

4. 模块下载、启用与更新:

模块下载:drush en 模块名 -y
模块启用:drush en admin-menu -y
模块更新:drush upc
升级Drupal核心:drush up drupal
更新数据:drush updatedb

5.语言包的下载:

     drush en l10n_update -y     

6. 数据库操作:

进入Mysql终端:

drush sql-cli

执行Drupal缓存表情况命令:

mysql>truncate cache;
truncate cache_admin_menu;
truncate cache_block;
truncate cache_bootstrap;
truncate cache_field;
truncate cache_filter;
truncate cache_form;
truncate cache_image;
truncate cache_libraries;
truncate cache_media_xml;
truncate cache_menu;
truncate cache_page;
truncate cache_path;
truncate cache_token;
truncate cache_views;
truncate cache_views_data;

7.sql数据备份

drush cc all && drush sql-dump > ~/my-sql-dump-file-name.sql #Drupal6 & Drupal7
drush cr all && drush sql-dump > ~/my-sql-dump-file-name.sql #Drupal8

8. 站点备份(同时备份数据库sql和Drupal文件夹):

drush archive-dump #[参考]下面几条是它的别名,更高级方式参考这个页面
drush ard
drush arb
drush archive-backup

8. 站点恢复(恢复站点文件夹,sql数据库文件需单独恢复到数据库中)

drush archive-restore #[参考]下面几条是它的别名
drush arr
drush sql-drop && drush sql-cli < ~/my-sql-dump-file-name.sql #单独恢复数据库文件

 

参考

http://www.phpcomposer.com/what-is-compose