如何使用Drush使网站离线?


Answers:


125

Drupal 8: drush sset system.maintenance_mode TRUE

Drupal 7: drush vset maintenance_mode 1

Drupal 6: drush vset site_offline 1


7
如果您使用的是drush-5.x,则现在只需使用“ drush vset maintenance_mode 1”。Drush会将Drupal 6的maintenance_mode重写为site_offline。(此功能比上面的答案还要新。)
greg_1_anderson 2011年

5
drush cc all更改此变量后,请确保清除缓存()。
smokris 2012年

1
Drupal 8 :(drush state-set system.maintenance_mode 1我不喜欢Drush的别名)
Andrea

15

首先,您应该cd进入正确的目录,以便您位于Drupal目录中。如果您使用多站点安装cd进入正确的sites / sitename目录,或指定正确的-l设置

在Drupal 6中,实际上仅需要以下命令:

$ drush vset --yes site_offline 1;

同样在Drupal 6中,如果您希望指定一条消息以在站点关闭时向站点用户显示,则可以使用以下命令。

$ drush vset --yes site_offline_message "This site is being maintained";
$ drush vset --yes site_offline 1;

在Drupal 7中,使用以下命令将站点置于维护模式:

$ drush vset --yes maintenance_mode 1;

要设置特定的消息,请使用:

$ drush variable-set --yes maintenance_mode_message "This site is being maintained"

可能有必要清除缓存,使这些变量的更改生效:

$ drush cc all

1
如果该变量尚不存在,则无法使用。您缺少--always-set参数。
TobiasSjösten2011年

1
变量是由安装程序创建的。去安装一个新的drupal并查看变量表。
斯图尔特·罗宾逊

1
由于包含site_offline_message部分而被推荐。我相信相当于Drupal 7的site_offline_message是maintenance_mode_message?
lolcode

您无需清除缓存,variable_set()会为您完成此操作:api.drupal.org/api/drupal/includes%21bootstrap.inc/function/…–
mvc

1
variable_set仅清除两个缓存。cache_clear_all('variables','cache_bootstrap');
斯图尔特·罗宾逊

2

为此,请使用Drupal 8和Drush 8.x使用以下state-set命令

drush sset system.maintenance_mode 1

起初,我以为这是我要设置的drush config-set system.maintenance,但是该配置中的唯一键是message(启用维护模式时显示的消息)和langcode(该消息的语言代码)。


0

这由变量site_offline控制。

$ drush vset --always-set site_offline 1

您也可以通过这种方式设置离线消息。

$ drush vset --always-set site_offline_message 'Please try again later!'

如果要维护该站点,这将使站点恢复正常。
斯图尔特·罗宾逊

感谢您指出了这一点。当然应该将其设置为1。
TobiasSjösten2011年

0

在Drupal 6中使用:

drush vset site_offline 1

使其脱离维护:

drush vset site_offline 0
drush cc all
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.