web-dev-qa-db-fra.com

Drush CC renvoyant tous "Non Drupal site trouvé, seul le cache" drush "a été effacé"

J'ai essayé d'autres solutions, mais aucune n'est spécifique à ma configuration. Je viens de commencer à utiliser le nouveau sous-système Linux présenté dans la récente mise à jour de Windows 10. J'utilise WAMP x64 v3.0.6, et j'ai réussi à cloner mon site Web et à le faire fonctionner. A la racine du sous-système Linux, j'ai installé Drush globalement avec Composer, en utilisant les instructions données sur Drupal webapage .

Taper drush status renvoie ce qui suit lorsque je l'exécute dans mon répertoire par défaut:

Drupal version         :  7.50
 Site URI               :  http://default
 Database driver        :  mysql
 Database hostname      :  localhost
 Database port          :
 Database username      :  root
 Database name          :  aerosphere
 PHP executable         :  /usr/bin/php
 PHP configuration      :  /etc/php5/cli/php.ini
 PHP OS                 :  Linux
 Drush script           :  /home/bob/.composer/vendor/drush/drush/drush.php
 Drush version          :  7.1.0
 Drush temp directory   :  /tmp
 Drush configuration    :
 Drush alias files      :
 Drupal root            :  /mnt/c/wamp64/www/drupal-7.50
 Site path              :  sites/default

Mais, comme mentionné dans le titre, drush cc all Retour No Drupal site found, only 'drush' cache was cleared.[warning] Je suppose que cela a quelque chose à voir avec l'ajout d'un chemin d'accès au .bashrc, mais je ne sais pas quoi ajouter. Tous les conseils seraient grandement appréciés!

Ma question est différente de " Drush - No Drupal Site trouvé lors de l'effacement du cache ", ils sont sur un Mac et utilisent MAMP, et j'utilise WAMP sur Windows. J'ai essayé les solutions proposées sur ce post, mais le problème n'a pas été résolu.

J'ai évidemment des problèmes de connexion à MySQL car j'obtiens ceci lorsque j'exécute la commande mysql:

Le programme 'mysql' peut être trouvé dans les paquets suivants: * mysql-client-core-5.5 * mariadb-client-core-5.5 * mysql-client-core-5.6 * percona-xtradb-cluster-client-5.5

Essayez: Sudo apt-get install.

J'ai donc ajouté ces lignes à mon .bashrc fichier:

PATH="$HOME/.composer/vendor/bin:$PATH"
export PATH="/mnt/c/wamp64/mysql/mysql5.7.14/bin:$PATH"

La ligne supérieure a été ajoutée pour que le drush fonctionne. J'ai vérifié plusieurs fois et j'ai le chemin correctement défini, mais cela ne fonctionne toujours pas.

7
Kellen

Il y a quelques choses que vous pouvez faire pour aider à déboguer votre drush. Voici ce que vous pouvez essayer:

sortie de débogage

Utilisation drush cc all -vvv

Cela vous fournira des informations précieuses sur ce que fait Drush en arrière-plan et vous montrera peut-être le message d'erreur réel.

Vérifiez votre settings.php

Selon votre configuration, vous pouvez transmettre des variables d'environnement à votre fichier settings.php pour une configuration de base de données par exemple. Ou peut-être pour fournir un memcache. Drush ne les regrette malheureusement pas car il contourne Apache. Par conséquent, je voudrais lui donner un test sans variables d'environnement pour voir si cela élimine le problème ou aider à le réduire. À des fins de débogage, il peut être utile d'utiliser simplement une copie propre de example.settings.php et de simplement modifier le tableau de base de données pour le tester.

Vérifiez que le client mysql est disponible

C'est celui qui m'a fait trébucher il y a quelque temps et le drush -vvv vous indiquera la bonne direction. S'il peut lire le fichier settings.php, ce qui semble être le cas car il obtient les paramètres db, alors peut-être qu'il ne peut pas se connecter à votre base de données mysql. L'un des problèmes que j'ai rencontrés était que la commande client mysql n'était pas disponible. Par exemple. essayez d'appeler 'mysql' et voyez si cela fonctionne. Après avoir corrigé cela, cela a fonctionné. Dans ma configuration Mamp, il s'agissait simplement de s'assurer que le chemin correct vers l'exécutable se trouvait dans mon Shell $ PATH.

J'espère que ça aide.

12
JNP Web Developer

Notant que votre sortie drush statusne donne un root, site path, database user et database name, cela signifie que drush recherche un fichier settings.php valide avec des informations d'identification et peut le lire.

Cependant, drush status n'a pas la ligne

Drupal bootstrap                :  Successful

ce qui indiquerait qu'il peut réellement se charger.

Si vous courez

drush sql-cli

Il tentera de générer une connexion client mysql à la base de données et cela générera probablement une erreur plus lisible sur ce qui se passe.

De plus, drush sql-connect affichera les informations de connexion (y compris les mots de passe, alors faites attention à les coller).

5
eporama

Cela se produit généralement lorsque le répertoire dans lequel vous appelez drush n'est pas un site Drupal ou non un sous-répertoire d'un site Drupal ou peut-être que drush ne peut pas reconnaître votre site. Voici quelques conseils qui pourraient vous aider:

  • Si vous travaillez sur une site unique Drupal installation, assurez-vous que sites/default/settings.php existe.
  • Si vous travaillez sur une installation multi-sites Drupal, assurez-vous:
    • Vous disposez d'un fichier de paramètres pour votre site dans sites/example.com/settings.php, où example.com serait généralement le domaine de votre site.
    • Vous exécutez la commande drush use example.com pour passer au site avec lequel vous souhaitez actuellement travailler.

J'espère que cela aide. Bon codage!

5
Jigarius

Une erreur de site Drupal introuvable apparaît lorsque Drush ne trouve pas votre installation Drupal. Vous pouvez spécifier le chemin d'accès à l'installation Drupal comme indiqué ci-dessous):

drush -r path/to/docroot cc all
3
Safallia Milins

Un cas spécifique où cela pourrait se produire, avec exactement le même rapport d'état de base, est lorsque ~/.my.cnf est configuré avec uniquement une entrée password, sans user correspondant, et la connexion à la base de données dans settings.php est configuré avec un autre utilisateur (et mot de passe). Le journal des erreurs mysql dira probablement quelque chose comme ceci pour chaque exécution de drush:

2018-06-29T08:49:30.926226Z 1046 [Note] Access denied for user 'user'@'localhost' (using password: YES)

C'est à dire. la connexion à la base de données échoue pendant l'amorçage drush/drupal. Dans mon cas, cela se produit dans Drush 8.x. Je n'ai pas enquêté sur d'autres versions. Il semble que drush utilise votre ~/.my.cnf au lieu des valeurs fournies par settings.php

Solution

Ajoutez une entrée user supplémentaire dans ~/.my.cnf ou supprimez l'entrée password:

[client]
user = your_mysql_username
password = your_mysql_pass
2
Kåre Slettnes

J'ai eu le même problème lors de l'exécution de drupal sur Windows et de l'utilisation de drush sur le sous-système Windows pour Linux. réponse de jnpWebDeveloper m'a aidé à le corriger. Ce sont les étapes dont j'avais besoin pour faire:

  1. mysql est manquant sur le sous-système. Vous devez l'installer via Sudo apt-get install. Pointer le chemin vers votre exécutable mysql Windows ne fonctionnera probablement pas même si le chemin est correct.
  2. Vous devrez remplacer localhost par 127.0.0.1 comme nom d'hôte dans votre settings.php. Sinon, mysql essaiera de se connecter à un serveur mysql sur votre sous-système linux en utilisant le socket local. Vous voulez qu'il puisse se connecter au serveur mysql fonctionnant sous Windows.
1
invalid index

Impossible d'exécuter la commande mysql (ou une autre commande équivalente selon votre pilote db) à partir du shell est le principal problème de Drush ne pouvant pas se connecter à Drupal. Exécuter drush -d sql-connect pour découvrir que c'est le cas.

Les lignes suivantes ajoutées à ~/.bashrc devrait être bien:

export PATH="$HOME/.composer/vendor/bin:$PATH"
export PATH="/mnt/c/wamp64/mysql/mysql5.7.14/bin:$PATH"

/mnt/c/wamp64/mysql/mysql5.7.14/bin est votre chemin vers votre commande mysql.

Pour recharger le script de démarrage Shell, exécutez:

~/.bashrc

ou reconnectez-vous. Cela peut également être vérifié en faisant écho à votre CHEMIN par: echo $PATH dans Bash Shell.

Pour tout autre problème similaire, vérifiez: Drush installé et en cours d'exécution; Non Drupal trouvé même avec l'URI spécifié .

0
kenorb

Dans Mon cas, la réplique de lecture de la base de données a été pointée vers un autre point de terminaison à l'origine du même problème. Commenter ou changer pour en corriger un a résolu le problème.

0
Dnyaneshwar Harer

Il s'agit très probablement d'un cas Edge, mais je le partagerai au cas où cela aiderait quelqu'un.

Dans mon cas, ce problème a été déclenché en changeant le mot de passe de root dans MySQL (le serveur est Linux).

J'ai un fichier, ~/.my.cnf, qui contient ces lignes:

[client]
user=root
password=mypassword

Cela me permet d'exécuter des commandes mysql dans des scripts bash sans nécessiter d'interaction avec l'utilisateur. Il semble que cela affecte également le fonctionnement de Drush. J'ai changé le mot de passe root sans mettre à jour ce fichier et le problème de drush a commencé. La mise à jour du mot de passe a résolu le problème, tout comme la suppression de ce fichier.

0
millionleaves

Hou la la! Pour moi, c'était l'inclusion du settings.local.php fichier qui ne fonctionnait plus localement.

Auparavant, je le faisais comme ça, et je le fais toujours sur le serveur en direct où il fonctionne toujours. Mais localement sur mon macOS avec MAMP, cela a renvoyé un mauvais chemin et donc le settings.local.php le fichier n'était plus inclus et Drush ne trouvait plus le site par défaut.

// OLD WAY.
if (file_exists(DRUPAL_ROOT . '/' . conf_path() . '/settings.local.php')) {
  include DRUPAL_ROOT . '/' . conf_path() . '/settings.local.php';
}

Je l'ai corrigé en remplaçant le code par celui qui est utilisé dans Drupal 8 et 9 et est maintenant ouvert pour le rétroportage, voir https://www.drupal.org/project/ drupal/issues/111852 .

// NEW WAY.
$local_settings = dirname(__FILE__) . '/settings.local.php';
if (file_exists($local_settings)) {
  include $local_settings;
}
0
leymannx