2010-10-28 78 views

回答

22

是的。 drush vset site_offline 1会将其设置为脱机,然后drush vdel site_offline将使其恢复。

或者,您可以在drupal.org上查看我的Maintenance File module,它会将您的网站设置为脱机,如果它在目录中找到特定文件。

4

如果您运行的是单个站点,那么该解决方案的解决方案是最好的解决方案。我们正在运行一个非常大的多站点drupal安装,有数百个站点。通过这种方式让他们离线,每个站点需要几秒钟,这是不可接受的。使站点脱机的最快方式是通过重命名settings.php文件来破坏数据库连接。然后,只需指定一个默认主题,该主题具有不需要数据库的基本模板,并说“Site Offline”或其他内容。升级后,你可以修复settings.php文件,你很好。

+0

这需要一样长的时间。要为每个站点设置默认主题,您必须更改数据库。上面的drush命令也在数据库中进行了更改:它与UPDATE {variables} SET值= 1 WHERE name ='site_offline'相同。所以,这个问题不是用淹没,甚至是这种将网站设置为离线的方法,这显然是最理想的。 – theunraveler 2010-10-28 19:49:09

+0

@theunraveler:我认为重点在于,只有在完成设置后才需要进行单个更改。不是我会尽我所能的方法。 – googletorp 2010-10-28 20:23:35

+0

@theunraveler:事实并非如此。在多站点设置中,您可以在基本安装中设置默认主题,这样如果您无法访问其中一个“多站点”站点,则默认为该基本主题。相信我,我花了很多时间调查这些,包括直接改变数据库。这是不够的,因为缓存不会被刷新。正如我上面提到的,我不推荐这个,除非你有很多网站,性能很重要。但使用这种技术,你可以在几秒钟内将500个站点脱机,而每个站点只需5-7秒,通过drush – Nader 2010-10-28 20:32:49

14

万一有人需要使用Drupal 7要做到这一点,该命令是:

drush vset maintenance_mode 1 --yes # Take site offline 
drush vset maintenance_mode 0 --yes # Put site back online 

这也有助于增加一点drush cc all每个这些命令后,确保变化出现瞬间给用户。

+0

此语法也适用于当前的drush上的drupal 6,因此可能是首选。 – ErichBSchulz 2012-11-17 02:20:55

0

随着D7网站别名:

drush @site_alias -y vset maintenance_mode 1 # Take site offline 
drush @site_alias -y vset maintenance_mode 0 # Take site online 
0

这是很容易,其实,只需维护模式的变量设置为1(0恢复默认值):

drush vset maintenance_mode 1 
0

的Drupal 6

drush vset site_offline 1 

Drupal 7的

drush vset maintenance_mode 1 
相关问题