Утилита drush для обслуживания CMS Drupal

В этой статье мы рассматривали установку утилиты drush, настало время рассмотреть эту утилиту более подробно

Drupal sh или Drupal shell – именно так расшифровывается аббревиатура drush, которая является названием утилиты с интерфейсом командной строки. Эта утилита широко используется профессиональными веб-разработчиками Drupal для управления проектами и ходом разработки Drupal. Не менее полезна она и для администраторов, поскольку её возможности позволяют автоматизировать выполнение самих административных задач, касающихся проектов на CMS Drupal. Например, таким образом администраторы хостинг-площадок реализуют установку веб-приложений Drupal в «один клик», что очень удобно для пользователей — клиентов хостингов.

Как появилась drush?

CMS Drupal очень сложная система, которая не предоставляет разработчику никаких удобств, но вместе с тем дарит безграничные возможности при создании любых веб-приложений любой сложности и направленности. По определению такая мощная и универсальная система не может быть удобной.
Работа с CMS Drupal – это рутинное выполнение действий, за которые отвечает исключительно сам разработчик. Drupal ничего не скрывает от пользователя/разработчика, а потому предоставляет ему естественную и логически правильно выстроенную схему работы API, в которой нет отсутствующих или «непонятных» компонентов. Это всё даёт полный контроль над процессом разработки и обслуживания проектов на Drupal, однако всегда сопровождается большим количеством рутинных действий. Ярким примером является обновление Drupal. Для этого необходимо перевести проект в режим обслуживания, загрузить пакет обновления, выполнить резервное копирование, удалить старые файлы CMS, перенести конфигурацию и … т. д. Со временем стали появляться скрипты для отдельных и самых рутинных задач (таких как обновление), а позже всё это объединилось в единую реализацию утилиты drush, которая через командную консоль может выполнить самую сложную задачу (обновление, установка) буквально одной командой. Вот как выглядит команда drush обновления ядра Drupal:

$ drush up drupal

В процессе выполнения этой команды нужно только подтвердить обновление и пронаблюдать за ходом работы команды. Для того, чтобы вручную обновить Drupal, может потребоваться (если всё делать очень быстро) 10 минут и более. Утилита drush сделает то же самое за 15 секунд.

Как работает drush?

Утилита drush – это набор сценариев, написанных на PHP, интерфейс к которым предоставляется через объединяющий файл-сценарий drush. Утилита запускает команды, для которых в свою очередь предусмотрены опции. Например рассмотренная выше команда up drupal, является ничем иным как собственно, командой up (update – обновить) с опцией drupal, указывающей, что следует произвести обновление проекта под именем drupal – т. е. ядра CMS Drupal. В качестве проектов также указываются имена модулей, тем оформления, локализаций и т. д.
В большинстве случаев утилиту drush приходится устанавливать в систему вручную. Однако в некоторых дистрибутивах Linux она доступна в виде готовых пакетов.
Для того, чтобы иметь возможность управлять проектом Drupal с помощью утилиты drush, необходимо либо запускать её в каталоге с проектом (предварительно перейдя в него), либо указывать этот каталог с помощью дополнительной опции.

Основные команды и опции drush

Синтаксис утилиты drush классический и выглядит следующим образом:

drush команда [опции]

Список основных и часто используемых команд drush:

Команда Назначение
cc, cache-clear Очистка кеша Drupal.
st, core-status Выводит основную информацию о состоянии ядра Drupal, а также параметрах его проекта.
updb, updatedb Выполняет обновление БД Drupal, аналогично запуску скрипта update.php.
dd, drupal-directory Возвращает абсолютный путь к проекту Drupal.
en, pm-enable Выполняет включение проекта (модуля или темы).
dis, pm-disable Отключает проект.
pm-info Выводит информацию для одного или нескольких проектов (модулей или тем).
pm-uninstall Удаляет указанные проекты.
pm-list Выводит список всех проектов, доступных Drupal.
vset Устанавливает значение переменных Drupal.
ws Выводит сообщения системного журнала Drupal.
ard, archive-dump Создаёт полный бекап сайта Drupal, включая БД.
up, pm-update Выполняет обновление одного или нескольких проектов Drupal.
dl, pm-download Загружает указанные проекты сразу в специальный системный каталог Drupal.
sql-conf Выводит реквизиты подключения к БД Drupal.
sql-connect Выводит строку текущего активного подключения к БД.
sql-dump Выполняет бекап БД.
sqlq, sql-query Выполняет произвольный SQL-запрос к БД Drupal.
sql-sync Выполняет копирование БД при помощи Rsync.

Глобальные опции drush позволяют применять команды более гибко. Далее приведены самые распространённые из них:

Опция Описание
-r, —root=PATH Задаёт путь к сайту на Drupal.
-y, —yes Автоматически подтверждает выдаваемые drush запросы.
-n, —no Автоматически отклоняет выдаваемые drush запросы.
-i, —include Подключает дополнительные пути для поиска функций и/или команд drush.
-v, —verbose Включает подробный вывод.
-u, —user Позволяет выполнить авторизацию на сайте Drupal.
—php Задаёт произвольный путь к интерпретатору PHP.
-s, —simulate Имитирует выполняемые действия команд.

Управление проектами и обслуживание Drupal

Как уже было отмечено, в качестве проектов Drupal выступают его модули, темы, а также само ядро. Всеми этими структурными компонентами легко управлять из командной строки. Так, например, загрузить и установить модуль views можно командой:

$ drush dl views

При этом drush загрузит модуль именно туда, где ему место — в каталог sites/all/modules. Далее от пользователя требуется его только включить:

$ drush en views
The following projects have unmet dependencies:
views requires ctools
Would you like to download them? (y/n): y

Многие модули в Drupal имеют зависимости в виде других модулей (или библиотек). При включении модуля с зависимостями drush их самостоятельно отследит и предложит загрузить.
Загрузка и установка темы оформления «Zero Point»:

$ drush dl zeropoint
$ drush en zeropoint

Установка темы оформления «Zero Point» как темы по-умолчанию:

$ drush vset theme_default zeropoint

Перевод Drupal в режим обслуживания:

$ drush vset maintenance_mode 1

Соответственно для перевода в рабочий режим, следует задать значение «0». Для создания резервной копии базы данных Drupal:

$ drush sql-dump –-result-file=site_back.dump

Создание полной резервной копии сайта Drupal, включая и БД:

$ drush ard –-destination=/home/john/backups/site-drupal.tar

Восстановление из полной резервной копии в каталог /htdocs/drupal-site:

$ drush arr /home/john/backups/site-drupal.tar –-destination=~/htdocs/drupal-site

Запуск скрипта обновления БД:

$ drush updb

Обновление всех компонентов Drupal (ядро, модули, темы):

$ drush up

Обновить только модулей, не затрагивая ядро:

$ drush up –-no-core

Обновление только проектов, имеющих обновления безопасности:

$ drush up –-security-only

Просмотр записей системного журнала Drupal:

$ drush ws

Управление пользователями

Для создания пользователя необходимо выполнить команду user-create:

$ drush user-create username1 –-mail=”username1@mail.ru” --password=”notqwerty”

Назначение роли «moderators» пользователю username1:

$ drush user-add-role moderators username1

Смена пароля пользователя username1:

$ drush user-password username1 –-password=”password”

Удаление пользователя username1:

$ drush user-cancel username1

Заключение

В заключение важно заметить, что кроме глобальный опций drush существуют опции, характерный для отдельных команд. Для получения дополнительной информации о таких опциях следует выполнять команду вида drush help команда. Как можно видеть, утилита drush – незаменимый помощник если не обычному пользователю, то веб- разработчику и/или опытному системному администратору точно.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

ИТ Проффи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: