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.
Veuillez vérifier que tous les points ci-dessous sont traités.
drush
dans Drupal ou dossier contenant settings.php
fichier.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
.
Votre PHP a PDO extension activée (vérifiez par: php -m | grep pdo
ou drush sqlc
).
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
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"
Pour XAMPP pour Windows, chose similaire, ajoutez votre C:\xampp\mysql\bin
dans votre variable d'environnement PATH
.
Si votre commande drush
échoue pour une raison quelconque, voici les étapes suggérées pour déboguer drush (commandes Shell).
xdebug
. Vérifiez par php71 -i | grep xdebug
.drush status
.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.
Maintenant, ouvrez et vérifiez le fichier de trace.
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
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.
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
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!!
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
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.