2010-10-28 2 views

ответ

22

Да. drush vset site_offline 1 установит его в автономном режиме, затем drush vdel site_offline вернет его.

Кроме того, вы можете проверить мой Maintenance File module на drupal.org, который установит ваш сайт в автономный режим, если он найдет определенный файл в каталоге.

4

Решение theunraveler является лучшим, если вы работаете на одном сайте. У нас была очень большая многоузловая установка drupal с сотнями сайтов. Взятие их в автономном режиме через drush занимает несколько секунд на сайт, что было неприемлемо. Самый быстрый способ сделать сайт недоступным - это разбить соединение db, например, переименовав файл settings.php. Затем просто назначьте тему по умолчанию, которая имеет базовый шаблон, который не требует db, говоря «Site Offline» или что-то еще. После обновления вы можете просто восстановить файл settings.php, и вам будет хорошо идти.

+0

Это занимает столько же времени. Чтобы задать тему по умолчанию для каждого сайта, вам необходимо внести изменения в базу данных. Команда drush выше также вносит изменения в базу данных: она совпадает с UPDATE {variables} SET value = 1 WHERE name = 'site_offline'. Таким образом, проблема заключается не в том, чтобы использовать drush или даже этот метод настройки сайтов в автономном режиме, что, очевидно, является самым идеальным. – theunraveler

+0

@ theunraveler: Я думаю, дело в том, что вам нужно только сделать одно изменение после того, как вы сделали настройку. Не метод, который я бы использовал сам. – googletorp

+0

@ theunraveler: это не тот случай. в многоуровневой настройке вы можете установить тему по умолчанию в базовой установке, чтобы, если вы не можете достичь одного из «многосайтовых» сайтов, по умолчанию эта базовая тема. поверьте мне, я потратил много времени на изучение этого, в том числе и на изменение db. этого недостаточно, потому что кеш не очищается. как я упоминал выше, я не рекомендую это, если у вас много сайтов и производительность важна. но с помощью этой техники вы можете забрать несколько 500 сайтов в автономном режиме за пару секунд, против 5-7 секунд на сайт через drush – Nader

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

Этот синтаксис также работает с drupal 6 на текущем drush, поэтому, вероятно, предпочтительнее. – ErichBSchulz

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 
Смежные вопросы