Estoy ejecutando Drush en un host que tiene múltiples versiones de PHP instaladas. Por defecto, php --version
le daría 5.2.x, pero php53 y php54 también están disponibles. Entonces, en mi .bash_profile tengo alias php='php53'
( php --version
= 5.3.13), lo que hace que Drush funcione para algunos comandos.
Sin embargo, sigo recibiendo "La instalación de PHP en la línea de comandos es demasiado antigua. Drush requiere al menos mensajes PHP 5.3.2" para algunos comandos muy útiles.
Un par de instancias realmente molestas:
drush pm-update
informará que ha realizado una copia de seguridad y luego actualizó todos los módulos y el núcleo correctamente, luego devolverá el error de versión de PHP y restaurará todas las copias de seguridad. En modo detallado, el comando que viene antes del error es: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
inmediatamente devolverá el error de versión de PHP
Los otros comandos que he probado hasta ahora funcionan bien. No estoy seguro de por qué sería esto, si Drush a veces usa el binario php53, y otras veces no, o si simplemente tiene problemas para detectar la versión correctamente, pero algunas funciones muy importantes están rotas para mí.
export DRUSH_PHP=php53
. Otra solución sería asegurar que php53 aparezca en su RUTA antes que cualquier otro PHP cuando ejecute Drush.source .bash_profile
por efecto inmediatoAquí hay otra solución:
Cree un enlace simbólico a la versión deseada de php (php5.4 en mi caso) ln -s / usr / local / bin / php54 ~ / bin / php
necesitamos cambiar la precedencia de ~ / bin en $ PATH para que aparezca antes de / usr / local / bin (donde se encuentra el intérprete php original) encuentre ~ / -name .bash_profile | xargs sed -i 's / \ $ PATH: \ $ HOME / bin / \ $ HOME / bin: \ $ PATH / g'
recargar .bash_profile source ~ / .bash_profile
procedente de: http://webiga.com/2013/06/22/change-default-version-of-php-at-webfaction/
fuente
Me encontré con esto después de actualizar Drush en Windows. El servidor tiene una versión anterior de PHP ejecutándose y no estaba recogiendo la versión de PHP que venía con Drush.
Pude solucionarlo especificando la ruta a php.exe en el archivo drush.bat, ubicado en
c: \ documentos y configuraciones \ todos los usuarios \ datos de la aplicación \ drush \ drush.bat
Acabo de agregar la ruta completa a PHP cambiando esta línea:
@ php.exe "% ~ dp0drush.php" --php = "php.exe"% * para esto:
@ "c: \ archivos de programa \ drush \ php \ php.exe" "% ~ dp0drush.php" --php = "php.exe"% *
fuente
El problema para mí fue que drush no funcionaba con la versión correcta de PHP, creo que el problema era que estaba usando PHP 7, y necesitaba PHP 5.6. Entonces corrí en la consola:
Y el resultado fue (ver la ruta PHP para 5.6):
Luego fui a mi archivo ~ / .bashrc y agregué una línea que establece la ruta de PHP para drush (y guardar):
Luego actualicé .bashrc con lo siguiente (no te pierdas el punto al comienzo del comando):
¡Y eso es! ¡Espero que ayude!
fuente
Suponiendo que instaló drush con el compositor y desea ejecutar su comando usando php 7 (esto también funciona para el envia en la nube de adquirir)
/usr/local/php7.1/bin/php ../vendor/drush/drush/drush.php --php = / usr / local / php7.1 / bin / php [your_drush_command_here]
fuente