Устанавливаем драш на убунту.
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
В отличии от ручного обновления, данная команда сама сделает все необходимые операции:
- Сделает бэкап
- Удалит старое ядро
- Поставит новое ядро
Использование 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.
Комментарии
Щика-а-арно. Каноникал не дремлит.
В настройках PuTTy поменяй кодировку на UTF-8 и все будет ок
Я юзаю стандартный терминал Ubuntu. Зачем мне что-то менять?)
А как узнать название модуля, когда мне нужно его скачать или включить?
Добрый день
Есть 2 вопроса.
-
Скажите пожалуйста, что нужно сделать чтобы не надо было писать sudo для команды drush ?
-
Что нужно сделать чтобы не надо было указывать каждый раз права при установке новой копии Drupal ?
Привет.
- Установить drush без sudo, т.е. команды pear выполнить без sudo.
- Не знаю, честно говоря, я права не меняю, сервер сам их регулирует. Можно сделать sh скриптик который будет за вас их фиксить. У меня где-то такой имеется.
А вы локально используете vagrant или просто virtualbox ?
Мне приходится постоянно задавать права для каждой директории с новой копией сайта.
На патруле помню все получалось гораздо проще, но у них Centos.
Дело в разделении прав Ubuntu или можно повторить подобное на ней ?
Локально уже сервера не держу, всю разработку веду сразу на серверах в сети. Там стоит Ubuntu server, никаких проблем с права вообще не было не разу.
Без sudo drush не хочет ставится.
Нашел аналогичную проблему.
http://stackoverflow.com/questions/17183213/install-php-codesniffer-in-…
К тому же, каждый раз приходится менять права sites/default/files и копировать sites/default/settings.php.
У патруля все иначе.
Можно ли сделать также в ubuntu ?
Была такаяже проблема на Ubuntu, на Ubuntu server у меня всё как на патруле, т.е. права сами выставляются, само копируется и т.д. Смею пологать проблема в том, что на домашнем, локальном сервер, неправильно функционировал(-ует) пользователь для веба, который должен сам права праильно выставить копировать файл и т.д. Основного пользователя тоже надо добавить в группу www. В общем и целом, на сервере такого не наблюдаю. В идеале, если лень разрабатывать в инете, можно вообще хитро поступить. В виртуалке развернуть Ubuntu server и на нем работать. И локальную ОС не засоряет серверный мусор, а серверный десктопный, и работает все куда стабильнее, а также образ сервера тоскать с собой можно. Даже можно флешку загрузучную сделать с вебсервером.
Вероятно дело в неподходящем vagrant боксе, попробую сегодня развернуть серверную версию.
Спасибо за подробный ответ )
Ничего не вышло, взял бокс отсюда https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cl…
Снова просит права и без sudo ничего не делает.
Это моя ошибка или вы меня обманули ?
Вы что-то устанавливаете из списка команд под sudo, вам надо избегать её. Прямо по всем командам с первой по последнюю попробуйте без sudo, используйте только там, где без sudo не установится. И больше не будет drush просить доступ рута.
Надо видимо в скором времени написать статейку как я свой сервак от и до развернул.
Мне кажется это моя проблема, я не задавал никаких прав для директории с сайтами.
drush dl drupal
Directory /usr/share/nginx/html exists, but is not writable. Please [error]
check directory permissions.
А почему он у вас в nginx то качает?
Когда-то раньше симлинк использовал, а сейчас первое что пришло в голову.
В поиске подсматриваю что другие делают.
В конфиге nginx root переписал и заработало.
Теперь все сайты в ~/domains и права доплнительные не требуются.
Может кто набредет случайно, оставлю на всякий пожарный.
В конфиге nginx строка:
root /home/имя_пользователя/domains;
И перезапуск.
Теперь все как на it-patrol, ну кроме валютной стоимости =)
Права для sites/default/files все равно требует при установке.
Если производить установку из drush, то проблем нет.
Но в браузере всегда требует права.
Вы затрудняетесь ответить ?
Я же вам уже сказал, у вас не правильно настроеные права на веб сервере. Посмотрите сюда: http://niklan.net/blog/69 тут тоже установка драша идёт и таких проблем нету, потомучто сервер разворачивается автоматически с настройкой всех прав.
Да, но вы же в прошлый раз сами писали про отличия серверной версии, а у меня desktop.
Я пытаюсь найти описание настройки.
Спасибо за статью, в свое время она мне помогла. Позвольте внести небольшой update - не уверен, как обстояли дела на момент написания статьи, но сейчас drush можно поставить из убунтушных реп с помощью волшебной комбинации sudo apt-get install drush, со всеми необходимыми зависимостиями, в т.ч. php-pear =).