Drush установлен и работает; Сайт Drupal не найден, даже если указан URI

9

После долгих испытаний и скорбей я подумала, что вымыла всех, готовых зарычать. Сильное волнение. Но тогда радости нет ...

Drush работает. Сайты работают нормально через MAMP. В любом случае, команда «drush cc all» возвращает:

No Drupal site found, only 'drush' cache was cleared.                                          [warning]
'all' cache was cleared.                                                                       [success]

Этот вопрос поставил в тупик посетителей drupalcon и очень опытных разработчиков. Любые идеи?

Я на Mac OS 10.9.3 с использованием MAMP (бесплатно) Версия 3.0.5

Вот мой статус пьяного:

 Drupal version         :  7.29-dev                               
 Site URI               :  http://default                         
 Database driver        :  mysql                                  
 Database hostname      :  localhost                              
 Database username      :  db_user                           
 Database name          :  db_name                      
 PHP executable         :  /usr/bin/php                           
 PHP configuration      :                                         
 PHP OS                 :  Darwin                                 
 Drush version          :  7.0-dev                                
 Drush temp directory   :  /tmp                                   
 Drush configuration    :                                         
 Drush alias files      :                                         
 Drupal root            :  /Applications/MAMP/htdocs/mysite.dev 
 Site path              :  sites/default    

Пытался выполнить drush от /Applications/MAMP/htdocs/mysite.dev; от /Applications/MAMP/htdocs/mysite.dev/sites/default; и используяdrush cc all --uri=http://localhost/mysite.dev

Пробовал запускать drush с сайтов / default. Тот же результат.

jenpasch
источник
Ваше подключение к базе данных находится в папке sites / default? Если это так, попробуйте запустить drush cc из этой папки. Я не думаю, что --uri - правильный аргумент для drush cc
chadpeppers
Пробовал запускать drush с сайтов / default. Тот же результат.
jenpasch
Вы нашли решение для этого. У меня та же проблема и аналогичные настройки.
Диджей
Я не. Я все еще безмолвен.
jenpasch
Вы смотрели на это? Внешне это выглядит примерно так: drupal.stackexchange.com/questions/98802/…
Ларин - CEDC.org

Ответы:

9

Пожалуйста, проверьте, чтобы все нижеуказанные пункты были учтены.

  1. Вы работаете drushв корневой папке Drupal или в папке, содержащей settings.phpфайл.
  2. Команда mysqlсуществует (и она у вас PATH).

    Обратите внимание, что команда базы данных зависит от вашей базы данных, driverзаданной в вашем файле настроек (например, sqlcmdдля SQL Server; подробности смотрите в различных классах Drush's /src/Sql).

    Если команда отсутствует при запуске в какой-либо папке, убедитесь, что путь к ее двоичному файлу добавлен в вашу PATHсистемную переменную.

  3. В вашем PHP включено расширение PDO (проверьте: php -m | grep pdoили drush sqlc).

  4. В вашем PHP включено расширение базы данных (например mysqli) (проверьте по:) php -m | grep mysql.

Чтобы выяснить, что именно не так, запустите drushс флагами -v(verbose) и -d(debug), например

drush -vd status
drush -vd ev "echo 123"
drush -vd cc all

и проверьте на наличие ошибок.


Расширение mysql для PHP PDO не установлено. Проверьте свой php.ini, чтобы увидеть, как вы можете включить его.

Установите расширение базы данных (например mysqli) (согласно пункту 4 выше).

Для MAMP, см .: Drush не работает на моем Mac


MAMP

Поскольку вы используете MAMP, убедитесь, что вы используете правильную версию phpбинарного файла (проверьте which php), и она должна указывать на /Applications/MAMP/bin/php/php5.X.X/bin/php. Если нет, пожалуйста, добавьте путь в ваш PATHфайл rc (например ~/.bashrc):

# For MAMP (OSX)
PHP_VER="5.6.10" # Or: 5.4.19/5.5.3 (check by: $ ls /Applications/MAMP/bin/php/php*)
export PATH="$PATH:/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php/php$PHP_VER/bin:/Developer/usr/bin"

XAMPP

Для XAMPP для Windows, аналогично, добавьте C:\xampp\mysql\binсвою переменную окружения PATH.

Отладка

Если drushпо какой-либо причине ваша команда не сработала, вот предложенные шаги для отладки drush (команды оболочки).

  1. Установите и включите расширение PHPxdebug . Проверка на php71 -i | grep xdebug.
  2. Убедитесь, что корень Drupal , файл настроек и база данных присутствуют в drush status.
  3. Создать файл трассировки:

    drush ev "xdebug_start_trace(); drush_drupal_cache_clear_all(); echo xdebug_get_tracefile_name(); xdebug_stop_trace();"

    или:

    drush ev "xdebug_start_trace(); print_r(_core_site_status_table()); echo xdebug_get_tracefile_name(); xdebug_stop_trace();"

    Если xdebug включен для другой версии PHP, укажите с помощью DRUSH_PHP=/path/to/php.

    В случае успеха выходной файл трассировки должен быть напечатан в конце, поэтому запомните это.

  4. Теперь откройте и проверьте файл трассировки.

  5. Чтобы протестировать или сравнить вывод Drush с чистым Drupal, вы можете установить новый Drupal в пустую папку:

    drush -y qd --no-server --core=drupal-8
    cd quick-drupal-*/drupal*
    drush status
kenorb
источник
2
+1 действительно хороший ответ, выходящий за рамки очевидных проверок settings.php и db. Особенно мне это drush sqlcпомогло, так как это показало, что база данных не может быть связана с пользователем, что привело меня к проверке пользователя и пароля и выявило, что я их неправильно настроил. Спасибо!
therobyouknow
1
У меня была похожая проблема с @therobyouknow - у меня был ~/.my.cnfфайл, в котором указывался пользователь для подключений mysql, но не пароль. Я думаю, что это привело к тому, что пользователь из этого файла использовал пароль с паролем с сайта, который был неверным. Добавление пароля в мой ~/.my.cnfфайл или удаление этого файла полностью
устранило
4

Была такая же проблема с новым Drush 8 на моем Mac под управлением MAMP

Вам нужно добавить это в ваш экспорт .bash_profile PATH = / Applications / MAMP / Library / bin /: $ PATH.

После добавления убедитесь, что вы открыли новое окно терминала, так как оно не будет работать с вашим текущим окном, так как bash необходимо запустить снова.

Бен Мирхах
источник
1
Это одноразовая строка - это то, что исправило это для меня. Я вырывал свои волосы на этом. ОТКРЫТЬ НОВОЕ ОКНО ДЛЯ ТЕРМИНАЛА, КОГДА ВЫ ДЕЛАЕТЕ ОБНОВЛЕНИЯ / ИЗМЕНЕНИЯ для bash! В противном случае ваши новые настройки не вступят в силу.
14
1

Как сказал @kenorb, используйте drush -vd cc all, это даст вам хорошее представление о том, что происходит в деталях. В моем случае это было связано с ошибкой "mysql command not found". Я решил это, установив путь для mysql в моих переменных окружения. Я чувствую, что вам нужно также проверить свой путь для Drush и MySQL и посмотреть, работает ли он.

Спасибо!!

Умеш Патил
источник
1

Чтобы очистить All Cache с помощью Drush, вам нужно перейти в каталог сайта на терминале, где находится каталог вашего сайта, как в каталоге www или htdocs, а затем в папку вашего проекта после этого выполнить команду:

drush cc all
Панкадж Сачдева
источник
0

Извлеките пакет Drush configure.md, в нем есть несколько полезных советов для платформ, поэтому раздел MAMP выглядит так:

Дополнительные конфигурации для Mamp:

Пользователи MAMP должны будут вручную указать в своем PATH, какую версию php и MySQL использовать в интерфейсе командной строки. Это не зависит от версии php, выбранной в настройках приложения MAMP. В OS X отредактируйте (или создайте, если он еще не существует) файл с именем .bash_profile в вашей домашней папке.

Чтобы использовать php 5.3.x, добавьте эту строку в .bash_profile:

export PATH="/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php5.3/bin:$PATH"

Если вы хотите использовать php 5.4.x, добавьте эту строку:

export PATH="/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php5.4/bin:$PATH"

Если вы используете MAMP 3 (по умолчанию php 5.5.14) и хотите использовать php 5.5.x, добавьте эту строку:

export PATH="/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php/php5.5.14/bin:$PATH"

Если у вас MAMP v.1.84 или ниже, эта конфигурация будет работать для обеих версий PHP:

export PATH="/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php5/bin:$PATH"

Если вы сделали это и по-прежнему получаете сообщение об ошибке «нет такого файла или каталога» из конструкции PDO :: __, попробуйте следующее:

bash sudo mkdir /var/mysql sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock

Кроме того, вам может потребоваться изменить настройки php.ini, прежде чем вы сможете успешно использовать drush. См. КОНФИГУРИРОВАНИЕ PHP.INI ниже для более подробной информации о том, как действовать.

Cameron
источник
0

Запустив MAMP Pro, я заставил это работать, добавив эту строку в мой ~/.bash_profileфайл:

export PATH=$PATH:/Applications/MAMP/Library/bin
Scott859
источник