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

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 и получаем доступ:

Drupalhosting SSH & DRUSH
Далее переходим в корневую директорию сайта
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.

Комментарии

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

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

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, ну кроме валютной стоимости =)

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

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

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

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

Добавить комментарий

Поддерживается Markdown
Поделиться