J'exécute Drush sur un hôte sur lequel plusieurs versions de PHP sont installées. Par défaut, php --version
vous donnerait 5.2.x, mais php53 et php54 sont également disponibles. Donc, dans mon .bash_profile, j'ai alias php='php53'
( php --version
= 5.3.13), ce qui fait fonctionner Drush pour certaines commandes.
Cependant, je reçois toujours des messages "Votre installation PHP en ligne de commande est trop ancienne. Drush nécessite au moins PHP 5.3.2" pour certaines commandes très utiles.
Quelques exemples vraiment ennuyeux:
drush pm-update
signalera qu'il a sauvegardé puis mis à jour tous les modules et le noyau avec succès, puis renvoie l'erreur de version PHP et restaure toutes les sauvegardes. En mode verbeux, la commande qui précède l'erreur est:php /home/[username]/drush/drush.php --backend=2 --verbose --root=/home/[username]/webapps/drup --uri=http://[domain name] pm-updatecode-postupdate 2>&1
drush archive-dump
retournera immédiatement l'erreur de version PHP
Les autres commandes que j'ai essayées jusqu'à présent fonctionnent bien. Je ne sais pas pourquoi ce serait, si Drush utilise parfois le binaire php53, et d'autres fois pas, ou s'il a juste du mal à détecter la version correctement, mais certaines fonctionnalités très importantes sont cassées pour moi.
export DRUSH_PHP=php53
. Une autre solution serait de s'assurer que php53 apparaît dans votre PATH avant tout autre PHP lors de l'exécution de Drush.source .bash_profile
pour un effet immédiatVoici une autre solution:
Créez un lien symbolique vers la version souhaitée de php (php5.4 dans mon cas) ln -s / usr / local / bin / php54 ~ / bin / php
nous devons changer la priorité de ~ / bin dans $ PATH afin qu'il apparaisse avant / usr / local / bin (où se trouve l'interpréteur php d'origine) trouver ~ / -name .bash_profile | xargs sed -i / \ $ PATH: \ $ HOME / bin / \ $ HOME / bin: \ $ PATH / g '
recharger la source .bash_profile ~ / .bash_profile
provenant de: http://webiga.com/2013/06/22/change-default-version-of-php-at-webfaction/
la source
Je viens de rencontrer cela après avoir mis à jour Drush sur Windows. Le serveur a une ancienne version de PHP en cours d'exécution et il ne récupérait pas la version de PHP fournie avec Drush.
J'ai pu le corriger en spécifiant le chemin d'accès à php.exe dans le fichier drush.bat, situé à
c: \ documents et paramètres \ tous les utilisateurs \ données d'application \ drush \ drush.bat
Je viens d'ajouter le chemin complet vers PHP en changeant cette ligne:
@ php.exe "% ~ dp0drush.php" --php = "php.exe"% * à ceci:
@ "c: \ program files \ drush \ php \ php.exe" "% ~ dp0drush.php" --php = "php.exe"% *
la source
Le problème pour moi était que drush ne fonctionnait pas avec la bonne version de PHP, je pense que le problème était qu'il utilisait PHP 7, et j'avais besoin de PHP 5.6. J'ai donc couru dans la console:
Et le résultat était (voir le chemin PHP pour 5.6):
Ensuite, je suis allé dans mon fichier ~ / .bashrc et j'ai ajouté une ligne qui définit le chemin PHP pour drush (et enregistrer):
Ensuite, j'ai mis à jour .bashrc avec ce qui suit (ne manquez pas le point au début de la commande):
Et c'est tout! J'espère que cela pourra aider!
la source
En supposant que vous avez installé drush avec composer et que vous souhaitez exécuter votre commande en utilisant php 7 (cela fonctionne également pour acquia cloud envs)
/usr/local/php7.1/bin/php ../vendor/drush/drush/drush.php --php = / usr / local / php7.1 / bin / php [your_drush_command_here]
la source