В этой статье мы не будем писать код, но подготовимся к написанию кода. Для этого мы установим Drush. Drush - это утилита для консоли, которая позволяет выполнять многие рутинные операции с друпалом: обновлять модули, выгружать/загружать конфигурацию, делать бекап и многое другое.
Если вы используете Open Server в качестве веб сервера для разработки, то эта инструкция подойдет вам:
1. Установите сам сервер. Скачать можно с сайта автора open-server.ru. Установка и документация там же.
2. После установки Open Server или если у вас уже уставновлен Open Server, нужно прописать в PATH переменную Windows.
C:\Users\yourUserName\AppData\Roaming\Composer\vendor\bin;C:\OpenServer\modules\php\PHP-5.6;C:\OpenServer\modules\database\MySQL-5.5\bin
В зависимости от выбранной дефолтной версии MySQL и PHP папки PHP-5.6, MySQL-5.5 могут меняться в зависимости от вашей версии.
В новых версия папка по умолчанию для open server теперь называется OSPanel:
C:\OSPanel\modules\php\PHP-7.0-x64;C:\OSPanel\modules\database\MySQL-5.7-x64\bin
Это нужно для того чтобы избавиться от этой ошибки:
needs a higher bootstrap level to run...
Также Open Server использует свою Path переменную. В настройках выставьте использование переменной Path системы. Также нужно создать файл в папке: \userdata\config\path.txt и продублировать туда свою Path переменную.
3. Установите Composer: https://getcomposer.org/download/
Composer это также консольная утилита, но только она работает со множеством библиотек на PHP. Она позволяет поддерживать актуальные версии ваших библиотек. Если установка пройдет гладко, то вы можете проверить работу composer из любого места, для этого достаточно запустить комманду, которая покажет версию вашего composer:
composer -V
Также composer уже установлен если пользоваться консолью Open Server в меню настроек выберите Дополнительно -> Консоль.
4. Установливаем сам Drush:
composer global require drush/drush:8.*
Если нужно установить 9.* версию drush, то укажите нужную версию.
composer global require drush/drush:9.*
Нам нужна версия drush не ниже 8ой. Дальше выполняем установку:
composer global install
Теперь drush будет доступен для любого сайта. Чтобы проверить какая версия Drush у вас стоит выполните комманду:
drush version
Теперь нужно добавить пакеты для работы с архивами.
Скачиваем и устанавливаем дополнительные программы в C:\Program Files\GnuWin32 (Для 64-битной Windows C:\Program Files (x86)\GnuWin32)
:
— LibArchive
— GZip
— UnZip
— WGet
Копируем и переименовываем файл C:\Program Files\GnuWin32\bin\bsdtar.exe
в C:\Program Files\GnuWin32\bin\tar.exe
. (Для 64-битной Windows C:\Program Files (x86)\GnuWin32)
Редактируем переменную среды PATH: Панель управления › Система › Дополнительные параметры системы › Дополнительно › Переменные среды › Системные переменные › Path
C:\Program Files\GnuWin32\bin\ или C:\Program Files (x86)\GnuWin32\bin\ для 64-битной Windows.
Если в вас drush заработал, то вы увидите вашу версию drush. В следующих статьях мы разберем как пользоваться drush'ем. Если у вас возникли ошибки, то можете писать в комментариях, будем разбираться.
Комментарии
Добавить комментарий
Сейчас расскажу вам такую
Сейчас расскажу вам такую историю, буквально на днях случилась:
В drupal 8 была ошибка, когда заходим в конфигурацию сайта, выскакивала ошибка о том что нужно удалить синонимы в Conten, и в Taxonomy. Я давай рыть в интернете как с этим бороться, нашел два пути решения,
1) Первый самый простой это прописать в index.php drupal код для обновлении базы, обновить страницу сайта и затем убрать новый код с index.php.
2) Нужно через drush запустить команду entity-update и все
Мне так понравилось что через drush можно все решить 1 строчкой, да и вообще углубился и понял что drush очень полезная утилита.
Ну вот тут все и началось, скачал drush 8 только он подходит для drupal 8. Установил программу PuTTY для SSH, также включил на хостинге данную фичу. Работа через SSH у меня тоже первый раз поэтому все было в новинку. Начал лазить в консоли разобрался, где все находится, зашел в папку с drush выполнил команду для $ ./drush/drush st - проверить статус, выходит ошибка, не достаточно прав. Узнал в инете что нужно через chmod увеличить права до X (разрешение на запуск скрипта)
Затем снова запускаю утилиту, выдает 2 ошибки PHP ...."[" - я php программист и сразу понял что это из-за версии PHP. Для drush 8 нужен интерпретатор 5.4.5+ а у меня на хостинге ниже. Зашел на хостинг (я помню, что ставил PHP 7.0 в панели у сайта, и сам друпал у меня на PHP7) написал в тех поддержку, они мне сказали что на хостинге PHP7 а для SSH используется 5, и написали мне путь для PHP7
Мои следующие действия в консоле
$ путь_к_php7/php ./drush/drush st
Все работает как надо, я обрадовался и давай дальше вводить
$ путь_к_php7/php ./drush/drush entity-update
затем выходит сообщение, с которым нужно согласится [y/n] я жму "y", и потом снова выходят ошибки связанные с версией PHP. Тех поддержка мне сказала, что я должен сделать alias для команды и тогда все скрипты будут автоматом запускаться с версией PHP7. Вот тут я застрял. Они мне сказали "Вы можете настроить alias для команды php с указанием необходимого Вам обработчика, создав файл .bash_profile в корне аккаунта. Подробная информация по написанию alias вопросу доступна в сети интернет.". Так вот собственно и вопрос:
Как сделать так чтобы drush 8 и все его скрипты запускались на PHP7 ну или хотя бы 5.4.5+ через alias ?
После выполнения команды
После выполнения команды composer global require drush/drush:8.* в консоле появилась ошибка: Skipped installation of bin drush.bat for package drush/drush: name conflicts with a
n existing file
Что это может быть?
Нужно добавить путь к папки
Нужно добавить путь к папки где лежит drush в переменную PATH: "%USERPROFILE%\AppData\Roaming\Composer\vendor\bin"
В настройках Open Server'а не забудьте выставить использование дополнительных мест для переменной PATH, как написано в статье.
Здравствуйте. Сделал все как
Здравствуйте. Сделал все как в статье. Набираю в консоле опен сервера drush version и появляется: "drush" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Здравствуйте, значит путь к
Здравствуйте, значит путь к drush не прописан в PATH переменной:
C:\OpenServer\modules\php\PHP-5.6-x64;C:\OpenServer\modules\database\MySQL-5.7-x64\bin;C:\Program Files (x86)\GnuWin32\bin\;C:\Users\Zver\AppData\Roaming\npm
C:\ProgramData\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\7-Zip;C:\Users\Zver\AppData\Roaming\Composer\vendor\bin;C:\OpenServer\modules\php\PHP-5.6-x64;C:\OpenServer\modules\database\MySQL-5.7-x64\bin;C:\Program Files\Git\cmd;C:\Program Files (x86)\OpenSSH\bin;C:\Program Files (x86)\GnuWin32\bin\;C:\Program Files\nodejs\;C:\ProgramData\ComposerSetup\bin;C:\Program Files (x86)\Skype\Phone\
Проверьте что все эти пути у вас есть в path и также проверьте что настройки Path переменной включены в open server.
Фух, спасибо! С этими
Фух, спасибо! С этими заработало.
Здравствуйте. Прописал В Path
Здравствуйте. Прописал В Path... включил + свой паз + вин паз
при первом запуске composer global require drush/drush:8.* - говорит обновить composer self update, выполняю... все ок
запускаю установку драш второй раз и получаю Nothing to install or update
Generating autoload files
Здравствуйте, команда
Здравствуйте, команда
drush version
что-нибудь выдает?
Если пишет что нечего ставить значит уже поставил. Попробуйте удалить drush и поставить заново:
А потом снова поставить:
Drush тоже должен быть в Path вашей ситемы, проверьте это тоже.
Устанавливал Drush, ну и
Устанавливал Drush, ну и намучился с ним. Тоже постоянно выдавал "drush" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Оказывается, сам не обратил внимание, на форумах писали, что drush.bat стал dr.bat с какой-то 8.1.+ и теперь он вызывается командой dr. Себе поставил 9.* все работает. Спасибо!
А можете, пожалуйста,
А можете, пожалуйста, поподробнее рассказать на счёт Path?
Я композер использовал встроенный в OSPanel.
Дальше что?
Мне прописывать одинаковые пути и в path.txt, и в "Переменных среды"?
И к чему прописывать нужно пути, кроме php и mysql?
Я запутался уже с этими переменными.
Спасибо.
Здравствуйте
Здравствуйте
После ввода: composer global require drush/drush:8.*
Появляется сообщение:
Your version of PHP, 5.3.6, is affected by CVE-2013-6420 and cannot safely perform certificate validation, we strongly suggest you upgrade.
Используйте PHP 5.6 или 7.0
Используйте PHP 5.6 или 7.0 или выше.