J'exécute Drush sur un hôte qui a plusieurs versions de PHP installé. 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 "Votre ligne de commande PHP est trop ancienne. Drush nécessite au moins PHP 5.3.2" des messages 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
renverra immédiatement l'erreur PHP versionLes 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.
Drush n'utilise pas directement juste php comme commande, mais a besoin du chemin complet. Avec la dernière version de Drush, vous pouvez ajouter la ligne suivante dans votre .bash_profile
pour définir lequel PHP vous souhaitez utiliser.
export DRUSH_PHP=/Applications/MAMP/bin/php/php5.3.14/bin/php
Voici juste un exemple pour MAMP, mais vous pouvez aussi le changer avec votre propre chemin.
Voici 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's/\ $ 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/
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"% *
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]
Le problème pour moi était que drush ne fonctionnait pas avec la bonne version 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:
où est php
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 PHP chemin pour drush (et enregistrer):
export DRUSH_PHP =/usr/bin/php5.6
Ensuite, j'ai mis à jour .bashrc avec ce qui suit (ne manquez pas le point au début de la commande):
. ~/.bashrc
Et c'est tout! J'espère que cela pourra aider!