Использование Drush 9 при варианте установки Drupal 8 через Composer

Главные вкладки

Аватар пользователя teqwer teqwer 30 сентября 2018 в 19:59

Здравствуйте, прошу Вашей помощи!

Вообщем установил Drupal 8 на хостинг, используя рекомендованный вариант с использованием Composer:

composer create-project drupal-composer/drupal-project:8.x-dev /home/qqqqq/site.com/k --stability dev --no-interaction

Установка прошла успешно.
Решил попробовать Drush, подключился по SSH, пробовал разные команды, например:

/home/qqqqq/site.com/k/vendor/bin/drush version

и получаю вот такие ошибки:

Warning: require(__DIR__/drush.php): failed to open stream: No such file or directory in /home/qqqqq/site.com/k/vendor/drush/drush/drush on line 4

Fatal error: require(): Failed opening required '__DIR__/drush.php' (include_path='.:/usr/local/pear/php52') in /home/qqqqq/site.com/k/vendor/drush/drush/drush on line 4

В настройках PHP сайта указана версия PHP 7.2. Многократные переустановки не помогли!

Я так понимаю, что при таком варианте установки с использованием Composer Drush 9 уже идет в комплекте?
Почему возникают ошибки, может я неправильно вызываю команды?

Подскажите пожалуйста!
Заранее благодарю!

Лучший ответ

Аватар пользователя fairrandir fairrandir 1 октября 2018 в 18:51
1

Установил у себя сейчас - всё работает.

Попробуйте в консоли
export PATH=/usr/local/php72/bin:$PATH
А потом ещё раз попробовать drush запустить

Комментарии

Аватар пользователя teqwer teqwer 30 сентября 2018 в 22:03

seoyuzer wrote:

Такс а сам drush установили?

composer require drush/drush

Установил drush, перешел:
cd /home/qqqqq/test.com/k/web
composer require drush/drush

ввожу:
vendor/bin/drush

Получаю ошибки:

Warning: require(__DIR__/drush.php): failed to open stream: No such file or directory in /home/qqqqq/site.com/k/vendor/drush/drush/drush on line 4
Fatal error: require(): Failed opening required '__DIR__/drush.php' (include_path='.:/usr/local/pear/php52') in /home/qqqqq/site.com/k/vendor/drush/drush/drush on line 4

Аватар пользователя teqwer teqwer 30 сентября 2018 в 22:27

seoyuzer wrote:

Версия php у домена какая?


Я так понимаю он ругается на отсутствие файла drush в директории:
/home/qqqqq/site.com/k/vendor/drush/drush/
Проверил - файл в данной директории есть.

Аватар пользователя teqwer teqwer 1 октября 2018 в 11:47

<a href="mailto:sas@drupal.org">sas@drupal.org</a> wrote:

composer install делали?

Вот как делаю пошагово на shared-хостинге:
Выбираю версию PHP сайта в панели управления сайта (php.ini) - 7.2
На хостинге уже есть папка test.com/www
Подключаюсь по SSH и устанавливаю Composer:

cd ~
echo "alias php='/usr/local/php72/bin/php'" >> ~/.bashrc  
echo "alias composer='php ~/composer.phar'" >> ~/.bashrc  
source ~/.bash_profile
curl -sS https://getcomposer.org/installer | /usr/local/php72/bin/php -- --install-dir=/home/qqqqq

Проверяю правильность установки:

composer

composer установлен!

Качаю и устанавливаю Drupal 8:

composer create-project drupal-composer/drupal-project:8.x-dev /home/qqqqq/site.com/www --stability dev --no-interaction

Установка проходит успешно!

После качаю Drush:

composer require drush/drush

После этого захожу в директорию:

cd /home/qqqqq/test.com/www

пробую Drush:

vendor/bin/drush

Получаю ошибку:

Warning: require(__DIR__/drush.php): failed to open stream: No such file or directory in /home/qqqqq/test.com/www/vendor/drush/drush/drush on line 4

Fatal error: require(): Failed opening required '__DIR__/drush.php' (include_path='.:/usr/local/pear/php52') in /home/qqqqq/test.com/www/vendor/drush/drush/drush on line 4

Пробую так:

/home/qqqqq/test.com/www/vendor/bin/drush

- ошибка та же.

На другом хостинге drush 8 в связке с drupal 8, установленный без использования Composer, работает нормально.
Сейчас решил установить Drupal 8 используя Composer, сыпятся эти ошибки.
Неоднократно пробовал переустанавливать Composer - не помогает!
Где я допускаю ошибку?
Заранее благодарю!

Аватар пользователя teqwer teqwer 1 октября 2018 в 17:22

fairrandir wrote:

composer require drush/drush надо из папки www запускать.


Да, я так и делал, просто забыл указать.
Ошибки те же.

Аватар пользователя fairrandir fairrandir 1 октября 2018 в 17:35
1

Так стоп.

teqwer wrote:

(include_path='.:/usr/local/pear/php52')

php точно 7.2? php -v что показывает? Хотя композер бы нафиг послал. Оччень странно

Аватар пользователя teqwer teqwer 1 октября 2018 в 18:31

fairrandir wrote:

php точно 7.2? php -v что показывает? Хотя композер бы нафиг послал. Оччень странно


Версия - PHP 7.2.6
Написал в техподдержку, там ничем помочь не могут, с их стороны все нормально.

Пытался "гуглить" об ошибках, информации - ноль!
Многократные переустановки composer не помогли.

На этом же хостинге в другом аккаунте drush 8 в связке с drupal 8, установленный без использования Composer, работает отлично на двух сайтах. Там drush установлен глобально!
Удалял там drush 8 и пытался ставить drush 9 результат - те же две ошибки.
На каком шаге я допускаю ошибку или все же проблема с хостингом?

Аватар пользователя ivnish ivnish 1 октября 2018 в 18:41
1

Попробуйте и drush9 установить глобально. У меня именно так и нет проблем. Под "глобально" я подразумеваю не в сайт, а в домашний каталог вашего пользователя. А чтобы не было конфликта, у меня drush9 имеет alias=drush, а drush8 имеет alias=drush8

Аватар пользователя fairrandir fairrandir 1 октября 2018 в 18:51
1

Установил у себя сейчас - всё работает.

Попробуйте в консоли
export PATH=/usr/local/php72/bin:$PATH
А потом ещё раз попробовать drush запустить

Аватар пользователя teqwer teqwer 1 октября 2018 в 18:56

Насколько я понял при рекомендованном варианте установки с использованием Composer:

composer create-project drupal-composer/drupal-project:8.x-dev /home/qqqqq/site.com/www --stability dev --no-interaction

глобальная установка drush не поддерживается!
У Вас такой вариант установки Drupal как выше, сайт вынесен в отдельную папку "web"?

Аватар пользователя teqwer teqwer 1 октября 2018 в 19:06

fairrandir wrote:

Попробуйте в консоли
export PATH=/usr/local/php72/bin:$PATH
А потом ещё раз попробовать drush запустить

Большое спасибо! Это помогло!
Я так понимаю, эта команда переопределяет путь к нужной версии PHP?

И еще попутно вопрос:
есть возможность использовать сокращенную команду, например:
drush cr

вместо

vendor/bin/drush cr
Заранее благодарю!

Аватар пользователя teqwer teqwer 1 октября 2018 в 19:10

itcrowd72 wrote:

Кому ваш вопрос адресован, поясните


Вам адресован,
я просто читал, что глобальная установка Drush при установке с помощью Composer не поддерживается!

Аватар пользователя teqwer teqwer 1 октября 2018 в 21:56

itcrowd72 wrote:

Попробуйте и drush9 установить глобально. У меня именно так и нет проблем. Под "глобально" я подразумеваю не в сайт, а в домашний каталог вашего пользователя. А чтобы не было конфликта, у меня drush9 имеет alias=drush, а drush8 имеет alias=drush8

Вы правы, можно установить глобально.
Установил заново в корень глобально Drush вот так:

mkdir ~/drush && cd ~/drush
composer require drush/drush:9.*
echo "alias drush='/usr/local/php72/bin/php ~/drush/vendor/bin/drush' " >> ~/.bashrc && source ~/.bash_profile

Сначала сыпались ошибки, но после применения команды от Fairrandir:

export PATH=/usr/local/php72/bin:$PATH

все заработало!
Спасибо!

P.S. А можно как-то использовать псевдонимы для двух разных сайтов на Drupal 8, например вместо:

/home/qqqqq/site1.com/www/vendor/bin/drush ws
использовать: site1 ws
а вместо:
/home/qqqqq/site2.com/www/vendor/bin/drush ws
использовать: site2 ws и т.д.?

Аватар пользователя teqwer teqwer 4 октября 2018 в 22:17

fairrandir wrote:

Попробуйте в консоли
export PATH=/usr/local/php72/bin:$PATH


К сожалению оказалось что решение работает только в рамках одной сессии.
При повторном подключении по SSH приходиться каждый раз вводить команду заново.
Может можно как-нибудь решить проблему?