Здравствуйте, прошу Вашей помощи!
Вообщем установил Drupal 8 на хостинг, используя рекомендованный вариант с использованием Composer:
Установка прошла успешно.
Решил попробовать Drush, подключился по SSH, пробовал разные команды, например:
и получаю вот такие ошибки:
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 уже идет в комплекте?
Почему возникают ошибки, может я неправильно вызываю команды?
Подскажите пожалуйста!
Заранее благодарю!
Комментарии
В корне проекта vendor/bin/drush
Перехожу в директорию:
cd /home/qqqqq/test.com/k/web
Ввожу:
vendor/bin/drush
Ошибка:
-bash: vendor/bin/drush: No such file or directory
Такс а сам drush установили?
composer require drush/drush
Установил drush, перешел:
cd /home/qqqqq/test.com/k/web
composer require drush/drush
ввожу:
vendor/bin/drush
Получаю ошибки:
Версия php у домена какая?
Версия PHP у сайта в панели управления (php.ini) - 7.2
Я так понимаю он ругается на отсутствие файла drush в директории:
/home/qqqqq/site.com/k/vendor/drush/drush/
Проверил - файл в данной директории есть.
Скорее всего drush не видит php
composer install делали?
Вот как делаю пошагово на shared-хостинге:
Выбираю версию PHP сайта в панели управления сайта (php.ini) - 7.2
На хостинге уже есть папка test.com/www
Подключаюсь по SSH и устанавливаю Composer:
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 установлен!
Качаю и устанавливаю Drupal 8:
Установка проходит успешно!
После качаю Drush:
После этого захожу в директорию:
пробую Drush:
Получаю ошибку:
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
Пробую так:
- ошибка та же.
На другом хостинге drush 8 в связке с drupal 8, установленный без использования Composer, работает нормально.
Сейчас решил установить Drupal 8 используя Composer, сыпятся эти ошибки.
Неоднократно пробовал переустанавливать Composer - не помогает!
Где я допускаю ошибку?
Заранее благодарю!
composer require drush/drush надо из папки www запускать.
Да, я так и делал, просто забыл указать.
Ошибки те же.
Так стоп.
php точно 7.2? php -v что показывает? Хотя композер бы нафиг послал. Оччень странно
Версия - PHP 7.2.6
Написал в техподдержку, там ничем помочь не могут, с их стороны все нормально.
Пытался "гуглить" об ошибках, информации - ноль!
Многократные переустановки composer не помогли.
На этом же хостинге в другом аккаунте drush 8 в связке с drupal 8, установленный без использования Composer, работает отлично на двух сайтах. Там drush установлен глобально!
Удалял там drush 8 и пытался ставить drush 9 результат - те же две ошибки.
На каком шаге я допускаю ошибку или все же проблема с хостингом?
Попробуйте и drush9 установить глобально. У меня именно так и нет проблем. Под "глобально" я подразумеваю не в сайт, а в домашний каталог вашего пользователя. А чтобы не было конфликта, у меня drush9 имеет alias=drush, а drush8 имеет alias=drush8
Установил у себя сейчас - всё работает.
Попробуйте в консоли
export PATH=/usr/local/php72/bin:$PATH
А потом ещё раз попробовать drush запустить
Насколько я понял при рекомендованном варианте установки с использованием Composer:
глобальная установка drush не поддерживается!
У Вас такой вариант установки Drupal как выше, сайт вынесен в отдельную папку "web"?
Кому ваш вопрос адресован, поясните
Большое спасибо! Это помогло!
Я так понимаю, эта команда переопределяет путь к нужной версии PHP?
И еще попутно вопрос:
есть возможность использовать сокращенную команду, например:
drush cr
вместо
vendor/bin/drush cr
Заранее благодарю!
В файл ~/.bashrc прописать
alias drush='путь до драш'
Вам адресован,
я просто читал, что глобальная установка Drush при установке с помощью Composer не поддерживается!
Дайте ссылку, впервые слышу о таком.
Вы правы, можно установить глобально.
Установил заново в корень глобально 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 и т.д.?
Сделайте алиасы в ~/.bashrc https://ru.wikipedia.org/wiki/Alias_(bash)
Конечно можно, почему нет.
К сожалению оказалось что решение работает только в рамках одной сессии.
При повторном подключении по SSH приходиться каждый раз вводить команду заново.
Может можно как-нибудь решить проблему?
В файл .bashrc прописать export PATH=/usr/local/php72/bin:$PATH