Набравшись опыту, расскажу, основываясь на собственных ошибках, как быстрее научиться работать с Drupal 7 платформой. При выборе Drupal 7 в качестве одной из основных CMS для разработок основывался на огромном количестве модулей и хорошей документации.
Итак, после установки Drupal 7 на локальный хост необходимо загрузить Drush или установить его через консоль. Командная строка Drush для Windows находится по адресу: http://www.drush.org/drush_windows_installer, Drush для Windows это простая командная строка чрез которую выполняются команды для работы c сайтом будь то очистка кэша, установка модулей их активация и т.д. Больше всего мне пригодились команда rsync, согласующая любое количество сайтов между собой - файлы и базы данных сайтов на Drupal.
Для того чтобы проверить правильность установки давайте перейдём в корневую директорию сайта Drupal 7, используя команду cd, например cd WebServers/home/test-mydrupal.ru/www/ и проверим правильность установки выполнив команду drush status. В итоге увидим примерно следующее: "Drupal version : 7.19...." и т.д.
Если вы увидели результат работы команды status, далее мы можем использовать любые команды Drush. Не исчерпывающий, перечень которых указан ниже:
Про Drush. Функции для работы с ядром!
cache-clear (cc) | Очищает определенный кэш или весь кэш сайта |
core-cli (cli) | Открывает новую консоль, оптимизированную для использования Drush |
соге-сгоп (сгоп) | Запускает все хуки крона в активных модуляx определенного сайта |
соге-rsync (rsync) | Запускает Rsync для синхронизации дерева сайта на базе Druapl с другим сервером через SSH |
соrе-status(status, st) | Предоставляет общий вид текущей копии сайта если таковая присутствует |
соrе-topic (topic) | Считывает подробную документацию по указанной теме. Возвращает путь к указанной папке тосМе/ |
help | Выводит справку для Drush. Дополнительные параметры можно узнать при помощи команды 'drush help' |
Image-flush | Удаляет все производные изображения в указанном стиле |
php-eval, eval | Запускает произвольный рhp код для Drupal 7 |
search-index | Индексирует оставшиеся материалы |
search-reindex | Обновляет индекс для материалов |
search-status | Показывает неиндексированные пункты |
self-update | обновляет Drush |
site-alias(sa) | Выводит список всех псевдонимов для всех известных псевдонимов сайтов и всех локальных сайтов |
site-install(si) | Устанавливает Drupal 7 вместе с модулями/темами/конфигурацией, используя указанный профиль установки |
test-clean(tc) | Удаляет временные таблицы и файлы |
updated (updb) | Осуществляет все нужные обновления базы данных (аналогично запуску файла update.php) |
site-alias(sa) | Выводит список всех псевдонимов для всех известных псевдонимов сайтов и всех локальных сайтов |
version | Показывает версию Drush |
Про Drush! Работа с перменными! Variables!
variable-delete | Удаляет переменную |
variable-get(vget) | Получить значение переменной |
variable-set(vset) | Создает несколько переменных |
Про Drush Работа с полями! Fields!
field-clone | Дублирует поля и все их экземпляры |
field-create | Создает поля и экземпляры. Возвращает url адреса для редактирования полей |
field-delete | Удаляет поле и его экземпляры |
field-info | Выводит сведения о полях, их типах и виджетах |
Про Drush Работа с пользователями! Users!
user-add-role(urol) | Добавляет роль пользователю |
user-block | Блокирует указанного пользователя или пользователей |
user-cancel | Аннулирует учетную запись пользователе |
user-unblock | Снимает блокировку с пользователя |
user-create | Создает учетную запись пользователя |
uinf | например, - drush uinf 1 выводит сведения о пользователе с id 1 |
user-login | Выводит ссылку для входа в пользователе учетную запись |
user-password (upwd) | Повторно задает пароль для пользователя с определённым именем |
urrol | Удаляет роль у пользователя |
Про Drush Работа с модулями! Modules!
pm-disable (dis) | Отключает один или несколько расширение (модулей или тем) |
pm-download (dl) | Загружает проекты с сайта drupal.org или других источников |
pm-enable (en) | Подключает одно или несколько расширений (модулей или тем) |
pm-info(pmi) | Выводит подробную информацию об одном или нескольких расширениях (модулях или темах) |
pm-list (pl) | Выводит список доступных расширений модулей или тем |
pm-refresh (rf) | Выводит свежую информацию статуса обновления |
pm-releasenotes | Выводит сопроводительные записи о версии проекта |
pm-releases (rl) | Выводит информацию о версии проекта |
pm-unistall | Удаляет один или несколько модулей |
pm-update | Обновляет выбранное расширение |
Помимо указанного списка команд Drush имеет другие команды, например для работы с базой данных сайта на Drupal.
RSYNC синхронизация!
Но остановимся мы не на всех командах Drush, а на способе синхронизации локального и рабочего сервера для двух сайтов Drupal 7. Для этого нужно в директории Drush создать файл "myclient.aliases.drushrc.php" следующего содержания:
В этом файле мы создали алиасы (псевдонимы) для двух сайтов "local" и "dev". После этого можно приступить к синхронизации, при этом файлы неизменённые с момента последнего копирования не будут повторно загружаться с удаленного сервера. Обязательными параметрами являются root и uri.
--no-owner --no-group - необходимы для того чтобы не переопределять владельца пользователя при копировании файлов, смысл их указывать есть для Windows. В результате у вас должен появится следующей текст:
You will destroy data from /cygdrive/C/WebServers/home/test-mydrupal.ru/www and replace with data fr
om root@62.109.28.99:/var/www/joomla/data/www/
Do you really want to continue? (y/n): y
Could not create directory '/home/\300\344\354\350\355\350\361\362\360\340\362\356\360/.ssh'.
The authenticity of host '62.109.28.100 (62.109.28.100)' can't be established.
RSA key fingerprint is 6d:7d:d9:06:02:06:c4:85:db:98:60:5c:14:12:31:6c.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/home/\300\344\354\350\355\350\361\362\360\340\36
2\356\360/.ssh/known_hosts).
root@62.109.28.100's password:
Псевдонимы сайтов пригодятся ещё для быстрого доступа к сайтам на drupal, например к получить информацию о сайте dev можно следующим образом:
К сведению ещё хотел бы рассказать про основной конфигурационный файл drushrc.php, расположенный, в корне Drush (его нужно скопировать из c:\ProgramData\Drush\examples\example.drushrc.php или в /usr/share/pear/drush/example.drushrc.php в корневую директорию Drush), в нём можно определить параметры ($options) uri(u) и root(i) для сайта на drupal в этом случае у вас отпадёт надобность постоянно переходить в директорию с сайтом используя команду cd, но этот способ не подойдёт Вам если у Вас несколько сайтов.
Никогда не использовал особо Git для контроля версий, больше мне пригодился Drush с возможностью синхронизации Drupal сайтов за несколько секунд. Надеюсь Drush как и Git помогут Вам сэкономить время и деньги.
В следующей статье я расскажу про расширенные возможности Drush при работе с удалённым сервером и отдельные команды, полный список которых Вы всегда можете найти на сайте http://drush.ws/.
1 просмотр
Взаимосвязанные материалы
Для замены стандартной иконки загрузки (Throbber) в Drupal 8 необходимо добавить следующий js код:
читать...Долго пришлось искать проблему не отображения файлов для которых созданы стили в Drupal 8. читать...
Если в последних версиях Drupal 8 появилась ошибка "Temporary file '*****.tmp' could not be created"
необходимо добавить в файл \sites\default\settings.php строку
читать...Несколько раз сталкивался с тем что последний элемент Breadcrumb кэшировался на страницах с типом "node", несмотря на то, что страница менялась. То же самое наблюдалось и с view.
читать...О том, как осуществить вывод информации с использованием ajax в Drupal 8. В Drupal 8 имеется несколько методов вывода информации через ajax - c применением методов Api и с использованием стандартных функций jQuery. При этом jQuery в Drupal 8 установлена по умолчанию. читать...
Комментарии
Ошибка при при попытке обновления сайта через Drush
Command pm-update needs a higher bootstrap level to run - you will need to invoke drush from a more functional
Drupal environment to run this command. [error] The drush command 'up' could not be executed.
[error] Drush was not able to start (bootstrap) the Drupal database.