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

9

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 utilisantdrush cc all --uri=http://localhost/mysite.dev

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

jenpasch
la source
votre connexion à la base de données se trouve-t-elle dans le dossier sites / default? Si c'est le cas, essayez simplement d'exécuter drush cc à partir de ce dossier. Je ne pense pas que --uri soit un argument valable pour drush cc
chadpeppers
J'ai essayé d'exécuter drush à partir de sites / par défaut. Même résultat.
jenpasch
Avez-vous trouvé une solution à ce problème? J'ai le même problème et une configuration similaire.
Deejay
Je n'ai pas. Je suis toujours sans ivresse.
jenpasch
Avez-vous regardé celui-ci? Cela semble similaire en haut: drupal.stackexchange.com/questions/98802/…
Laryn - CEDC.org

Réponses:

9

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

  1. Vous exécutez drushdans le dossier racine Drupal ou dans un dossier contenant un settings.phpfichier.
  2. La mysqlcommande existe (et elle est dans votre PATH).

    Veuillez noter que la commande database dépend de votre base de données driverdéfinie dans votre fichier de paramètres (par exemple sqlcmdpour 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 PATHvariable système.

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

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

Pour rechercher ce qui ne va pas exactement, exécutez drushavec les indicateurs -v(verbose) et -d(debug), par exemple

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

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


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

Installez l' extension de base de données (par exemple mysqli) (conformément au 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 de phpbinaire (vérifiez par which php) et il doit pointer vers /Applications/MAMP/bin/php/php5.X.X/bin/php. Sinon, s'il vous plaît ajouter le chemin dans votre PATHdans vos rc fichiers (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\bindans votre variable d'environnement PATH.

Débogage

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

  1. Installez et activez l' extension PHPxdebug . Vérifiez par php71 -i | grep xdebug.
  2. Vérifiez que la racine Drupal , le fichier de paramètres et la 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 de PHP, 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 en:

    drush -y qd --no-server --core=drupal-8
    cd quick-drupal-*/drupal*
    drush status
    
Kenorb
la source
2
+1 réponse vraiment sympa, allant au-delà de la vérification évidente de settings.php et db. Particulièrement pour moi m'a drush sqlcaidé car il a montré que la base de données ne pouvait pas être connectée à l'utilisateur, ce qui m'a amené à vérifier l'utilisateur et le mot de passe et a révélé que je les avais mal configurés. Je vous remercie!
therobyouknow
1
J'ai eu un problème similaire à @therobyouknow - j'avais un ~/.my.cnffichier qui spécifiait l'utilisateur pour les connexions mysql mais pas de mot de passe. Je pense que cela entraînait une utilisation excessive de l'utilisateur de ce fichier avec le mot de passe du site, qui n'était pas valide. L'ajout d'un mot de passe dans mon ~/.my.cnffichier ou la suppression de ce fichier a entièrement résolu le problème
artfulrobot
4

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.

Ben Mirkhah
la source
1
Cette ligne jetable est ce qui l'a fixée pour moi. Je tirais mes cheveux sur celui-ci. OUVREZ UNE NOUVELLE FENÊTRE DE TERMINAL LORSQUE VOUS FAITES DES MISES À JOUR / MODIFICATIONS à bash! Sinon, vos nouveaux paramètres ne prendront pas effet.
erier
1

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!!

Umesh Patil
la source
1

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
Pankaj Sachdeva
la source
0

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.

Cameron
la source
0

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

export PATH=$PATH:/Applications/MAMP/Library/bin
Scott859
la source