Утилита 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.



2019-03-25T11:57:33
Drupal