Как перевести сайт в автономный режим с помощью Drush?

80

Как я могу отключить сайт с помощью Drush?

markdorison
источник

Ответы:

125

Drupal 8: drush sset system.maintenance_mode TRUE

Drupal 7: drush vset maintenance_mode 1

Drupal 6: drush vset site_offline 1

tim.plunkett
источник
7
Если вы используете drush-5.x, теперь вы можете просто использовать "drush vset maintenance_mode 1". Drush перезапишет maintenance_mode в site_offline для Drupal 6. (Эта функция новее, чем приведенный выше ответ.)
greg_1_anderson
5
Обязательно очистите caches ( drush cc all) после изменения этой переменной.
Smokris
1
Drupal 8: drush state-set system.maintenance_mode 1(мне не нравятся псевдонимы drush)
Андреа
15

Сначала вы должны перейти в правильный каталог, чтобы вы оказались в каталоге Drupal. Если вы используете установочный компакт-диск с несколькими сайтами в правильном каталоге 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.
Тобиас Шестен
1
Переменная создается установщиком. Идите, установите новый друпал и посмотрите в таблицу переменных.
Стюарт Робинсон
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 ('variable', 'cache_bootstrap');
Стюарт Робинсон
2

Чтобы сделать это с Drupal 8 и Drush 8.x, используйте state-setкоманду :

drush sset system.maintenance_mode 1

Сначала я предполагал, что это будет что-то, с чем я бы настроился drush config-set system.maintenance, однако единственными ключами в этой конфигурации являются message(сообщение, отображаемое при включенном режиме обслуживания) и langcode(код языка для указанного сообщения).

chrisfree
источник
0

Это контролируется переменной site_offline.

$ drush vset --always-set site_offline 1

Вы также можете установить автономное сообщение таким образом.

$ drush vset --always-set site_offline_message 'Please try again later!'
Тобиас Шестен
источник
Это вернет сайт обратно, если он не будет обслуживаться.
Стюарт Робинсон
Спасибо что подметил это. Конечно, он должен быть установлен в 1, ничего больше.
Тобиас Шестен
0

Из Drupal 6 используйте:

drush vset site_offline 1

Чтобы вывести его из эксплуатации:

drush vset site_offline 0
drush cc all
TechGirlGeek
источник