web-dev-qa-db-fra.com

Drush installé et en cours d'exécution; Non Drupal site trouvé même avec l'URI spécifié

Après beaucoup d'épreuves et de tribulations, je pensais avoir bu toutes prêtes à rugir. Beaucoup d'excitation. Mais alors, pas de joie ...

Drush fonctionne. Les sites fonctionnent bien via MAMP. Quoi qu'il en soit, une commande "drush cc all" renvoie:

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

Cette question a déconcerté les participants drupalcon et les développeurs très expérimentés. Des idées?

Je suis sur Mac OS 10.9.3 en utilisant MAMP (gratuit) Version 3.0.5

Voici mon statut 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'ai essayé d'exécuter drush depuis /Applications/MAMP/htdocs/mysite.dev; de /Applications/MAMP/htdocs/mysite.dev/sites/default; et en utilisant drush cc all --uri=http://localhost/mysite.dev

J'ai essayé d'exécuter drush à partir de sites/par défaut. Même résultat.

9
jenpasch

Veuillez vérifier que tous les points ci-dessous sont traités.

  1. Vous exécutez drush dans Drupal ou dossier contenant settings.php fichier.
  2. La commande mysql existe (et elle se trouve dans votre PATH).

    Veuillez noter que la commande de base de données dépend de votre base de données driver définie dans votre fichier de paramètres (par exemple sqlcmd pour SQL Server; pour plus de détails, vérifiez les différentes classes dans Drush's /src/Sql ).

    Si la commande est manquante lors de l'exécution dans un dossier, assurez-vous que le chemin d'accès à son fichier binaire est ajouté dans votre variable système PATH.

  3. Votre PHP a PDO extension activée (vérifiez par: php -m | grep pdo ou drush sqlc).

  4. Votre PHP a extension de base de données activé (par exemple mysqli ) (vérifiez par: php -m | grep mysql).

Pour rechercher ce qui ne va pas, exécutez drush avec -v (verbeux) et -d (débogage) drapeaux, par exemple.

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

et vérifiez s'il y a des erreurs.


extension mysql pour PHP PDO n'est pas installé. Vérifiez votre php.ini pour voir comment vous pouvez l'activer.

Installez extension de la base de données (par exemple mysqli ) (selon le 4ème point ci-dessus).

Pour MAMP, voir: Drush ne fonctionne pas sur mon Mac


MAMP

Puisque vous utilisez MAMP, assurez-vous également que vous exécutez la bonne version du binaire php (vérifiez par which php) et il doit pointer vers /Applications/MAMP/bin/php/php5.X.X/bin/php. Sinon, veuillez ajouter le chemin dans vos PATH dans vos fichiers rc (par exemple ~/.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

Pour XAMPP pour Windows, chose similaire, ajoutez votre C:\xampp\mysql\bin dans votre variable d'environnement PATH.

Débogage

Si votre commande drush échoue pour une raison quelconque, voici les étapes suggérées pour déboguer drush (commandes Shell).

  1. Installez et activez extension PHP xdebug . Vérifiez par php71 -i | grep xdebug.
  2. Vérifiez que Drupal root, Fichier de paramètres et Base de données sont présents dans drush status.
  3. Générer un fichier de trace:

    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();"
    

    Si xdebug est activé pour différentes versions PHP version, spécifiez avec DRUSH_PHP=/path/to/php.

    En cas de succès, le fichier de sortie de trace doit être imprimé à la fin, alors prenez-en note.

  4. Maintenant, ouvrez et vérifiez le fichier de trace.

  5. Pour tester ou comparer la sortie drush avec Drupal propre, vous pouvez installer de nouveaux Drupal dans un dossier vide par:

    drush -y qd --no-server --core=drupal-8
    cd quick-drupal-*/drupal*
    drush status
    
9
kenorb

J'ai eu le même problème avec le nouveau Drush 8 sur mon Mac exécutant MAMP

Vous devez l'ajouter à votre export .bash_profile PATH =/Applications/MAMP/Library/bin /: $ PATH.

une fois ajouté, assurez-vous d'ouvrir une nouvelle fenêtre de terminal car cela ne fonctionnera pas sur votre fenêtre actuelle car bash doit redémarrer.

4
Ben Mirkhah

Pour effacer tout le cache à l'aide de Drush, vous devez aller dans le répertoire du site sur le terminal où se trouve votre répertoire de site comme dans le répertoire www ou htdocs, puis dans votre dossier de projet après cela, exécutez la commande:

drush cc all
1
Pankaj Sachdeva

Comme l'a dit @kenorb, utilisez drush -vd cc all, cela vous donnera une bonne idée de ce qui se passe en détail. Dans mon cas, c'était dû à l'erreur "mysql command not found". Je l'ai résolu en configurant le chemin d'accès à mysql dans mes variables d'environnement. Je pense que vous devez également vérifier votre chemin, pour Drush et MySQL et voir si cela fonctionne.

Merci!!

1
Umesh Patil

En exécutant MAMP Pro, je l'ai fait fonctionner en ajoutant cette ligne dans mon ~/.bash_profile fichier:

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

Découvrez le package Drush configure.md, il a un tas de conseils utiles pour les plates-formes, la section MAMP est donc:

Configurations supplémentaires pour Mamp:

Les utilisateurs de MAMP devront spécifier manuellement dans leur CHEMIN la version de php et MySQL à utiliser dans l'interface de ligne de commande. Ceci est indépendant de la version php sélectionnée dans les paramètres de l'application MAMP. Sous OS X, modifiez (ou créez s'il n'existe pas déjà) un fichier appelé .bash_profile dans votre dossier personnel.

Pour utiliser php 5.3.x, ajoutez cette ligne à .bash_profile:

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

Si vous souhaitez utiliser php 5.4.x, ajoutez plutôt cette ligne:

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

Si vous utilisez MAMP 3 (php 5.5.14 par défaut) et que vous souhaitez utiliser php 5.5.x, ajoutez plutôt cette ligne:

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

Si vous avez MAMP v.1.84 ou inférieur, cette configuration fonctionnera pour les deux versions de PHP:

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

Si vous avez fait cela et que vous obtenez toujours une erreur "aucun fichier ou répertoire" de la construction PDO :: __, essayez ceci:

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

En outre, vous devrez peut-être ajuster vos paramètres php.ini avant de pouvoir utiliser drush avec succès. Voir CONFIGURATION DE PHP.INI ci-dessous pour plus de détails sur la façon de procéder.

0
Cameron