Drush instalado e funcionando; Nenhum site Drupal encontrado, mesmo com o URI especificado

9

Depois de muitas provações e tribulações, pensei que tinha bebido tudo pronto para rugir. Muita emoção. Mas então, sem alegria ...

Drush está funcionando. Os sites funcionam bem via MAMP. Independentemente, um comando "drush cc all" retorna:

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

Esta pergunta surpreendeu os participantes da drupalcon e os desenvolvedores muito experientes. Alguma ideia?

Estou no Mac OS 10.9.3 usando o MAMP (gratuito) versão 3.0.5

Aqui está o meu status de drush:

 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    

Já tentei executar drush de /Applications/MAMP/htdocs/mysite.dev; de /Applications/MAMP/htdocs/mysite.dev/sites/default; e usandodrush cc all --uri=http://localhost/mysite.dev

Tentei executar drush de sites / padrão. Mesmo resultado.

jenpasch
fonte
sua conexão com o banco de dados está localizada na pasta sites / padrão? Nesse caso, tente executar drush cc a partir dessa pasta. Eu não acho que --uri é um argumento válido para Drush cc
chadpeppers
Tentei executar drush de sites / padrão. Mesmo resultado.
22414 jenpasch #
Você encontrou uma resolução para isso. Eu tenho o mesmo problema e configuração semelhante.
Deejay
Eu não. Eu ainda estou sem água.
jenpasch
Você já olhou para este? É semelhante fora do topo: drupal.stackexchange.com/questions/98802/...
laryn - CEDC.org

Respostas:

9

Por favor, verifique se todos os pontos abaixo são abordados.

  1. Você está executando drushna pasta raiz do Drupal ou na pasta que contém o settings.phparquivo.
  2. O mysqlcomando existe (e está no seu PATH).

    Observe que o comando database depende do seu banco de dados driverdefinido no seu arquivo de configurações (por exemplo, sqlcmdpara o SQL Server; para obter detalhes, verifique as diferentes classes nos Drush /src/Sql).

    Se o comando estiver ausente ao executar em qualquer pasta, verifique se o caminho do arquivo binário foi adicionado à sua PATHvariável de sistema.

  3. Seu PHP possui a extensão DOP ativada (verifique por: php -m | grep pdoou drush sqlc).

  4. Seu PHP possui a extensão de banco de dados ativada (por exemplo mysqli) (verifique por php -m | grep mysql:).

Para investigar o que é exatamente errado, correr drushcom -v(detalhado) e -dbandeiras (depuração), por exemplo,

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

e verifique se há erros.


A extensão mysql para PHP PDO não está instalada. Verifique seu php.ini para ver como você pode habilitá-lo.

Instale a extensão do banco de dados (por exemplo mysqli) (conforme acima do quarto ponto).

Para o MAMP, consulte: Drush não funciona no meu Mac


MAMP

Como você está usando o MAMP, certifique-se de executar a versão correta do phpbinário (verifique por which php) e ela deve apontar para /Applications/MAMP/bin/php/php5.X.X/bin/php. Caso contrário, adicione o caminho PATHno seu arquivo rc (por exemplo ~/.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

Para o XAMPP para Windows, algo semelhante, adicione sua C:\xampp\mysql\binvariável de ambiente PATH.

Depuração

Se o seu drushcomando falhar por algum motivo, aqui estão as etapas sugeridas para depurar drush (comandos do shell).

  1. Instale e ative a extensão PHPxdebug . Verifique por php71 -i | grep xdebug.
  2. Verifique se a raiz do Drupal , o arquivo de configurações e o banco de dados estão presentes em drush status.
  3. Gere arquivo de rastreamento:

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

    ou:

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

    Se o xdebug estiver ativado para uma versão diferente do PHP, especifique com DRUSH_PHP=/path/to/php.

    Se for bem-sucedido, o arquivo de saída de rastreio deverá ser impresso no final, portanto, anote-o.

  4. Agora abra e verifique o arquivo de rastreamento.

  5. Para testar ou comparar a saída de drush com o Drupal limpo, você pode instalar o novo Drupal na pasta vazia:

    drush -y qd --no-server --core=drupal-8
    cd quick-drupal-*/drupal*
    drush status
kenorb
fonte
2
+1 resposta muito boa, indo além do óbvio check settings.php e db. Particularmente para mim me drush sqlcajudou, pois mostrou que o banco de dados não podia ser conectado ao usuário, o que me levou a verificar o usuário e a senha e revelou que eu os havia configurado errado. Obrigado!
Therobyouknow 23/02
1
Eu tive um problema semelhante ao @therobyouknow - eu tinha um ~/.my.cnfarquivo que especificava usuário para conexões mysql, mas não uma senha. Eu acho que isso estava resultando em drush usando o usuário desse arquivo com a senha do site, que era inválida. Adicionando uma senha no meu ~/.my.cnfarquivo, ou remover esse arquivo totalmente resolvido o problema
artfulrobot
4

Tive o mesmo problema com o novo Drush 8 no meu Mac executando o MAMP

Você precisa adicioná-lo ao seu .bash_profile export PATH = / Aplicativos / MAMP / Biblioteca / bin /: $ PATH.

depois de adicionado, abra uma nova janela do terminal, pois ela não funcionará na sua janela atual, pois o bash precisa ser iniciado novamente.

Ben Mirkhah
fonte
1
Essa única linha descartável é o que a corrigiu para mim. Eu estava puxando meu cabelo para fora. ABRA UMA NOVA JANELA DE TERMINAIS AO REALIZAR ATUALIZAÇÕES / ALTERAÇÕES! Caso contrário, suas novas configurações não serão afetadas.
erier
1

Como o @kenorb disse, use drush -vd cc all, ele lhe dará uma boa idéia do que está acontecendo em detalhes. No meu caso, foi devido ao erro "mysql command not found". Eu o resolvi configurando o caminho para o mysql nas minhas variáveis ​​de ambiente. Eu sinto que você precisa verificar o seu caminho também, tanto para o Drush quanto para o MySQL, e ver se funciona.

Obrigado!!

Umesh Patil
fonte
1

Para limpar o All Cache usando Drush, você deve acessar o diretório do site no terminal em que o diretório do site está localizado, como no diretório www ou htdocs, e depois a pasta do projeto, depois executar o comando:

drush cc all
Pankaj Sachdeva
fonte
0

Confira o pacote Drush configure.md, ele tem várias dicas úteis para plataformas, a seção MAMP é assim:

Configurações adicionais para Mamp:

Os usuários do MAMP precisarão especificar manualmente em seu PATH qual versão do php e MySQL usar na interface da linha de comando. Isso é independente da versão php selecionada nas configurações do aplicativo MAMP. No OS X, edite (ou crie, se ainda não existir), um arquivo chamado .bash_profile na sua pasta pessoal.

Para usar o php 5.3.x, adicione esta linha ao .bash_profile:

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

Se você deseja usar o php 5.4.x, adicione esta linha:

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

Se você usa o MAMP 3 (php 5.5.14 por padrão) e deseja usar o php 5.5.x, adicione esta linha:

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

Se você possui o MAMP v.1.84 ou inferior, esta configuração funcionará para ambas as versões do PHP:

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

Se você fez isso e ainda está recebendo um erro "sem esse arquivo ou diretório" da construção PDO :: __, tente o seguinte:

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

Além disso, pode ser necessário ajustar as configurações do php.ini antes de poder usar o drush com êxito. Veja CONFIGURANDO O PHP.INI abaixo para mais detalhes sobre como proceder.

Cameron
fonte
0

Executando o MAMP Pro, consegui que isso funcionasse adicionando esta linha ao meu ~/.bash_profilearquivo:

export PATH=$PATH:/Applications/MAMP/Library/bin
Scott859
fonte