第15章 使用Drush

译者:蓝眼泪

本章提供了一个Drush的基本概述,它是一个简化了创建和管理Drupal8网站的命令行工具。使用Drush的时候,以前往往需要你登陆到网站上,导航到网站管理页面,填写一个表单的任务,现在可以通过简单的命令行界面进行了。Drush可以使你不用登录每一个服务器和网站,实现远程管理一个或多个站点来执行日常维护的任务。Drush主要负责管理模块、主题、用户配置文件和常见的任务管理,如运行cron,创建备份和清理缓存。你甚至可以使用Drush执行SQL命令。

安装Drush

Drush是在其核心的一套shell脚本(Unix/Linux)或bat脚本(Windows),结合PHP脚本处理大部分管理Drupal网站的任务。安装脚本和PHP在Unix/Linux和Windows上都是一个相对简单的过程。

在Unix,Linux或OS X上安装Drush

在Unix,Linux或OS X上安装Drush,要遵循一下步骤:

  1. https://github.com/drush-ops/drush 上下载Drush。在Github上Drush所在页面右侧你会看到一下Download Zip的按钮,如果你熟悉Git(见第16章),你可能想要克隆Git仓库以方便管理Drush的更新。有关克隆仓库的信息,请参见第16章。
  2. 将压缩文件drush.zip放在网站根目录外的目录下。在大多数web服务器上,网站根目录是像public_html或www_root或docroot这样的目录。查看你根目录下的web服务器详细说明文档。为了安全起见,你可能不想把它放在web根目录下,因为它将可被任何人使用和执行。
  3. 执行以下命令,使drush命令可执行
    $ chmod u+x /path/to/drush/drush
  4. 配置系统使他能够识别Drush。有三种方式:
    a. 创建一个符号链接到已存在一路径中的Drush可执行目录中,例如:
    $ ln -s /path/to/drush/drush /usr/bin/drush

    b. 明确地将Drush可执行的添加到系统变量中,它是在shell配置文件中定义的,名称为:.profile,.bash_profile,.bash_aliases,或.bashrc,位于你的主文件夹下。例如:
    export PATH="$PATH:/path/to/drush:/usr/local/bin"

    你的系统将从左到右搜索路径选项,直到找到结果。

    c. 增加Drush别名:如果你想使用两种版本的Drush这个方法也是很方便的,如Drupal7开发使用Drush5或6(稳定版),Drupal8开发使用Drush7(主分支)。向你的Drush7可执行的添加一个别名,把它添加到你的shell配置文件里(见前面的选项列表):
    $ alias drush-master=/path/to/drush/drush

    要在你的当前会话中应用选项b和c,可以登出并重新登录或使用下边的命令重新加载bash配置文件:
    $ source .bashrc


注意:如果你不走这一步,你将需要(不方便的)使用完整路径在可执行文件下运行Drush命令,/pash/to/drush/drush,或导航到 /path/to/drush 然后运行 ./drush。将需要-r-l选项(见下方的使用)。


5.测试系统可以找到Drush:
$ which drush

6.在Drush根目录下,运行Composer获取依赖关系:
$ composer install

要查看Composer的更多信息,请访问 https://getcomposer.org/doc/00-intro.md

在Windows上安装Drush

要在Windows上安装Drush,请访问 https://www.drupal.org/node/594744 ,该页面上有如何在Windows上安装Drush的最新介绍。对于不同Windows版本和不同Drush版本来说安装方法是不同的。

Drush命令

执行Drush命令是相对简单和直接的。从允许你访问操作系统命令行的终端窗口或其他工具导航到你Drupal网站的根目录下,尝试一下Drush,在命令提示符下输入drush status并点击回车,Drush返回的内容应该像下面这样:

Drupal version : 8.0-dev  
Site URI : http://default  
Database driver : mysql  
Database username : d8  
Database name : d8  
Database : Connected  
Drupal bootstrap : Successful  
Drupal user : Anonymous  
Default theme : bartik  
Administration : seven  
theme  
PHP executable : /usr/bin/php  
PHP configuration :  
PHP OS : Darwin  
Drush version : 7.0-dev  
Drush configuration :  
Drush alias files :  
Drupal root : /Applications/MAMP/htdocs/d8  
Site path : sites/default  
File directory path : sites/default/files  
Temporary file : /Applications/MAMP/tmp/php  
directory path  
Active config path : sites/default/files/config_lFEpXnCuJgRcTN0kwUlVqp7FAr  
JU7Cj4s2AbZN9Fg6W22BksQHWkPzhJGqU4cfs0Ix2UD7YEqg/active  
Staging config path : sites/default/files/config_lFEpXnCuJgRcTN0kwUlVqp7FAr  
JU7Cj4s2AbZN9Fg6W22BksQHWkPzhJGqU4cfs0Ix2UD7YEqg/staging

status命令返回一个有关你当前Drupal8安装信息的有用的列表,另一个重要例子是使用drush pm-download命令行下载一个模块或主题:
drush pm-download calendar
这个命令将在你的网站上下载日历模块的最新生产版本,还有一种缩短版的命令行drush dl calendar. 要在命令行启动日历模块(例子),你需要执行
drush pm-enable calendar 或在短版本里执行:drush en calendar

要禁用日历模块,使用
drush pm-disable calendar 或使用短版本,执行:drush pm calendar

如果日历模块的新版本或安全补丁已发布,而你想要应用这个更新,那么请运行
drush pm-update calendar 就像你看到的,通过简单快捷的命令行工具可以完成需要通过在管理界面几次点击才能完成的工作。

表15-1提供了公共Drush命令的完整列表。如需更完整的介绍请访问http://drush.org

表15-1 Drush核心命令

命令描述
archive-dump备份代码、文件、数据库到一个文件中
archive-restore扩展站点压缩到一个Drupal网站
cache-clear清除特定的缓存,或者所有Drupal缓存
cache-get获取一个缓存对象并将它显示出来
cache-set将一个对象缓存为JSON或var_export()格式
core-config编辑drushrc,网站别名,和drupal的settings.php文件
core-cron在指定站点的所有有效模块中运行cron
core-execute执行一个shell命令,通常会使用网站别名
core-quick-drupal以最小的配置和依赖下载、安装、服务、登录到Drupal
core-requirements如果有的话,会提供你Drupal安装时的错误信息
core-rsync使用SSH远程同步Drupal与另一台服务器
core-status如果有的话,提供当前Drupal安装的鸟瞰图
core-topic在一个给定的主题上阅读详细文档
drupal-directory返回到一个给定模块/主题目录的路径
help打印此帮助消息,查看更多Drush帮助信息
image-flush刷新所有导出图像为给定的风格
php-eval在引导Drupal之后评估任意PHP代码(如果可用)
php-script运行PHP脚本
queue-list返回所有定义的队列列表
queue-run按名称运行一个特定的队列
search-index索引其余的搜索项目,而不清除索引
search-reindex强制搜索索引重建
search-status显示总共仍有多少项目待索引
self-update检查是否有更新的Drush版本中提供
shell-alias打印所有已知的shell别名记录
site-alias打印所有网站别名和本地站点的别名记录
site-install使用指定的安装配置文件与模块/主题/配置一起安装Drupal
site-reset重置持续站点设置
site-set为当前会话中持续的工作设置一个站点别名
site-ssh通过SSH的交互式会话或运行一个shell命令连接到Drupal网站服务器
test-clean清除临时表和文件
test-run运行测试。注意,您必须使用--uri选项
updatedb应用所需要的任何数据库更新(如运行update.php)
usage-send向统计记录站点发送匿名Drush使用情况,使用统计包括Drush命令名称及Drush选项名称,但不包括参数或选项的值。
usage-show显示Drush已记录但尚未发送的使用信息。使用统计包括Drush命令名称及Drush选项名称,但不包括参数或选项的值
variable-delete删除一个变量
variable-get获取部分或全部网站的变量和值的列表
version显示Drush版本
watchdog-delete删除watchdog消息
watchdog-list显示可用的消息类型和严重程度。一个提示会要求选择显示watchdog消息。
watchdog-show显示watchdog信息

表15-2 字段命令

命令描述
field-clone克隆一个字段及其所有实例
field-create创建字段和实例。返回字段编辑链接
field-delete删除字段及其实例
field-info查看有关字段,字段类型,和小部件的信息
field-update返回字段编辑网页的链接

表15-3 项目管理的命令

命令描述
pm-disable禁用一个或多个扩展(模块和主题)
pm-download从Drupal.org或其他来源下载项目
pm-enable启用一个或多个扩展(模块和主题)
pm-info显示一个或多个扩展(模块和主题)的详细信息
pm-list显示可用扩展(模块和主题)的列表
pm-refresh刷新更新状态信息
pm-releasenotes打印给定项目的发行说明
pm-releases打印给定项目的发布信息
pm-uninstall卸载一个或多个模块
pm-update更新Drupal核心和贡献的项目以及应用任何挂起的数据库更新(和PM-更新代码+数据库更新一样)
pm-updatecode更新Drupal核心和贡献的项目到最新推荐的版本

表15-4 SQL命令

命令描述
sql-cli使用Drupal的凭据打开SQL命令行界面
sql-connect一个连接到数据库的字符串
sql-create创建数据库
sql-drop删除一个给定的数据库中的所有表
sql-dump使用mysqldump或等效的操作导出Drupal数据库为SQL
sql-query执行对站点数据库的查询
sql-sync复制和导入源数据库到目标数据库。通过rsync进行转移

表15-5 用户命令

命令描述
user-add-role添加角色到指定的用户帐户
user-block阻止指定的用户(S)
user-cancel取消具有指定名称的用户帐户
user-create创建具有指定名称的用户帐户
user-information打印关于指定用户(S)的信息
user-login向指定用户帐户显示一个一次性登录链接(默认为ID1)
user-password为具有指定名称的用户账户设置或重置密码
user-remove-role移除指定用户帐户的角色
user-unblock解锁指定的用户

总结

Drush向那些喜欢命令行操作的用户提供了一个快速且容易的方法来管理网站。还有很多更高级的Drush功能,如编写Drush脚本同时执行多个任务。欲了解更多信息,请访问 http://drush.org

接下来,第16章介绍了如何使用Git来管理Drupal源代码。如果你喜欢Drush,你一定会喜欢的Git!

results matching ""

    No results matching ""