Drush на Ubuntu и Drupalhosting: как установить и использовать

Ускорьте работу с Drupal на Ubuntu с Drush! Эффективные команды для управления сайтом.

28.02.2013
26 комментариев
2 мин.

Drush — системная утилита позволяющая управлять Drupal сайтом из терминала. По сути она позволяет выполнять все те же действия, что и административный интерфейс, но внутри консоли.

Я совсем новый пользователь линукса и больше всего при переходе меня пугала консоль. Как оказалось, это мало того что не страшно, это даже очень круто, ведь это удобно и быстро. Более менее привыкнув к консоли ubuntu, подучив пару команд, я решил попробовать консоль и для Drupal'a. Стоить отметить, что эта утилита очень популярна среди англоязычного сообщества Drupal, и даже на Drupal.ru я иногда попадаюсь на сообщения в которых упоминается Drush с лучшей стороны.

Для начала качаем библиотеку pear: sudo apt-get install php-pear

Устанавливаем Drush: sudo pear channel-discover pear.drush.org sudo pear install drush/drush

Проверяем установку: sudo drush status

Обновляем ядро Drupal с помощью Drush: drush -r /var/www/public_html/niklan.dev up

где /var/www/public_html/niklan.dev — путь до корневой папки сайта.

Например можно изначально перейти в папку сайта, чтобы потом не писать постоянно путь: cd /var/www/public_html/niklan.dev sudo drush up

В отличии от ручного обновления, данная команда сама сделает все необходимые операции:

  1. Сделает бэкап
  2. Удалит старое ядро
  3. Поставит новое ядро

Использование Drush на Drupalhosting.ru (it-patrol)

Для того чтобы использовать данную возможность на удаленном сайте/сервере, необходимо чтобы на том сервере был установлен Drush и SSH, иначе ничего не получится.

Разумеется, всем известный хостинг для Drupal сайтов http://drupalhosting.ru/, просто не мог обойти данную особенность стороной и там он предустановлен на всех тарифах.

Всем при регистрации присылают письмо с данными доступа, среди которых: SSH & Main FTP Access. Мы будем использовать ssh (с которым я тоже совсем недавно начал знакомиться), который обеспечит доступ к серверной консоли, а затем мы сможем выполнять команды Drush'a.

Итак, для подключения по SSH в терминале пишем (в Windows есть вроде как программа PuTTY для SSH): ssh ЛОГИН@СЕРВЕР.vps-private.net

У меня DH Elastic, поэтому я использовал следующие данные: ssh u9999@shiva.vps-private.net

После чего вводим свой пароль от SSH&FTP и получаем доступ:

Далее переходим в корневую директорию сайта
cd domains/domain.name

Пишем команду обновления (так как мы уже в корне сайта, нам не надо указывать путь):

drush up

И сайт обновится ;) Мой сайт без проблем обновился с версии 7.12, до версии 7.20, почти моментально. Делая все руками я потратил бы минут 10. В данном случае я потратил минуты 2-3, на то чтобы зайти на почту, найти логин и пароль, проверить название своего сервера, подключить и выполнить обновление. Поэтому, зная свой логин и пас, можно обновлять менее чем за минуту.

Чтобы завершить работу с ssh пишем:

exit

Список всех доступных команды с описанием можно найти на офф сайте http://drush.ws/ или ввести drush help

Некоторые полезные команды

drush up — обновление ядра и модулей Drupal.

drush cc all — очистка всего кеша сайта.

drush pm-list — список всех модулей и тем установленных на сайте, а также их версии и статус активности.

drush dl module — загружает модуль или тему. Несколько значений пишится через пробел.

drush en module — включает указанный модуль или тему.

drush dis module — выключает указанный модуль или тему.

drush ard — создание бэкапа сайта. Делает бэкап как самого сайта, так и базы данных, все это сохраняется в tar.gz архиве. Невероятно удобная вещь.

drush arr path — восстановление бекапа созданного командой drush ard. Заместо path нужно указать путь до архива, включая его название и расширение.

Вывод

Утилита просто супер. Один бекап и восстановление чего стоит. Сокращает время на раз два, в добавок ей можно пользоваться хоть с телефона, особо не заботясь о трафике, ибо он просто минимален.

На заметку

Для работы обновления через Drush, необходимо чтобы был включен модуль Update Manager.

Drush
Linux
Ubuntu

Комментарии

Svetozarrr   пт, 18/10/2013 - 01:02

Спасибо за статью, в свое время она мне помогла. Позвольте внести небольшой update - не уверен, как обстояли дела на момент написания статьи, но сейчас drush можно поставить из убунтушных реп с помощью волшебной комбинации sudo apt-get install drush, со всеми необходимыми зависимостиями, в т.ч. php-pear =).

cevinw   вт, 24/12/2013 - 22:34

В настройках PuTTy поменяй кодировку на UTF-8 и все будет ок

Niklan   вт, 24/12/2013 - 22:36

Я юзаю стандартный терминал Ubuntu. Зачем мне что-то менять?)

Антон   вс, 14/09/2014 - 02:53

А как узнать название модуля, когда мне нужно его скачать или включить?

Drush   чт, 15/01/2015 - 11:52

Добрый день

Есть 2 вопроса.

  1. Скажите пожалуйста, что нужно сделать чтобы не надо было писать sudo для команды drush ?

  2. Что нужно сделать чтобы не надо было указывать каждый раз права при установке новой копии Drupal ?

Niklan   чт, 15/01/2015 - 12:10

Привет.

  1. Установить drush без sudo, т.е. команды pear выполнить без sudo.
  2. Не знаю, честно говоря, я права не меняю, сервер сам их регулирует. Можно сделать sh скриптик который будет за вас их фиксить. У меня где-то такой имеется.
Drush   чт, 15/01/2015 - 12:30

А вы локально используете vagrant или просто virtualbox ?

Мне приходится постоянно задавать права для каждой директории с новой копией сайта.

На патруле помню все получалось гораздо проще, но у них Centos.

Дело в разделении прав Ubuntu или можно повторить подобное на ней ?

Niklan   чт, 15/01/2015 - 12:37

Локально уже сервера не держу, всю разработку веду сразу на серверах в сети. Там стоит Ubuntu server, никаких проблем с права вообще не было не разу.

Drush   чт, 15/01/2015 - 14:28

К тому же, каждый раз приходится менять права sites/default/files и копировать sites/default/settings.php.

У патруля все иначе.

Можно ли сделать также в ubuntu ?

Niklan   чт, 15/01/2015 - 14:49

Была такаяже проблема на Ubuntu, на Ubuntu server у меня всё как на патруле, т.е. права сами выставляются, само копируется и т.д. Смею пологать проблема в том, что на домашнем, локальном сервер, неправильно функционировал(-ует) пользователь для веба, который должен сам права праильно выставить копировать файл и т.д. Основного пользователя тоже надо добавить в группу www. В общем и целом, на сервере такого не наблюдаю. В идеале, если лень разрабатывать в инете, можно вообще хитро поступить. В виртуалке развернуть Ubuntu server и на нем работать. И локальную ОС не засоряет серверный мусор, а серверный десктопный, и работает все куда стабильнее, а также образ сервера тоскать с собой можно. Даже можно флешку загрузучную сделать с вебсервером.

Drush   чт, 15/01/2015 - 15:22

Вероятно дело в неподходящем vagrant боксе, попробую сегодня развернуть серверную версию.

Спасибо за подробный ответ )

Niklan   вс, 18/01/2015 - 12:18

Вы что-то устанавливаете из списка команд под sudo, вам надо избегать её. Прямо по всем командам с первой по последнюю попробуйте без sudo, используйте только там, где без sudo не установится. И больше не будет drush просить доступ рута.

Надо видимо в скором времени написать статейку как я свой сервак от и до развернул.

Drush   вс, 18/01/2015 - 12:28

Мне кажется это моя проблема, я не задавал никаких прав для директории с сайтами.

drush dl drupal
Directory /usr/share/nginx/html exists, but is not writable. Please  [error]
check directory permissions.

Drush   вс, 18/01/2015 - 12:33

Когда-то раньше симлинк использовал, а сейчас первое что пришло в голову.

В поиске подсматриваю что другие делают.

Drush   вс, 18/01/2015 - 12:39

В конфиге nginx root переписал и заработало.

Теперь все сайты в ~/domains и права доплнительные не требуются.

Drush   вс, 18/01/2015 - 12:53

Может кто набредет случайно, оставлю на всякий пожарный.

В конфиге nginx строка:

root /home/имя_пользователя/domains;

И перезапуск.

Теперь все как на it-patrol, ну кроме валютной стоимости =)

Drush   вс, 18/01/2015 - 17:05

Права для sites/default/files все равно требует при установке.

Drush   пн, 19/01/2015 - 09:40

Если производить установку из drush, то проблем нет.

Но в браузере всегда требует права.

Niklan   пн, 02/02/2015 - 11:49

Я же вам уже сказал, у вас не правильно настроеные права на веб сервере. Посмотрите сюда: http://niklan.net/blog/69 тут тоже установка драша идёт и таких проблем нету, потомучто сервер разворачивается автоматически с настройкой всех прав.

Drush   пт, 06/02/2015 - 17:25

Да, но вы же в прошлый раз сами писали про отличия серверной версии, а у меня desktop.

Я пытаюсь найти описание настройки.