Ich führe Drush auf einem Host aus, auf dem mehrere Versionen von PHP installiert sind. Standardmäßig php --version
würden Sie 5.2.x erhalten, aber php53 und php54 sind auch verfügbar. In meinem .bash_profile habe ich also alias php='php53'
( php --version
= 5.3.13), wodurch Drush für einige Befehle funktioniert.
Ich erhalte jedoch weiterhin die Meldung "Ihre Befehlszeilen-PHP-Installation ist zu alt. Drush benötigt mindestens PHP 5.3.2" für einige sehr nützliche Befehle.
Ein paar wirklich nervige Beispiele:
drush pm-update
meldet, dass alle Module und der Kern erfolgreich gesichert und aktualisiert wurden, gibt dann den PHP-Versionsfehler zurück und stellt alle Sicherungen wieder her. Im ausführlichen Modus lautet der Befehl vor dem Fehler: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
gibt sofort den PHP-Versionsfehler zurück
Die anderen Befehle, die ich bisher ausprobiert habe, funktionieren einwandfrei. Ich bin mir nicht sicher, warum dies so ist, wenn Drush manchmal die php53-Binärdatei verwendet und manchmal nicht, oder wenn es nur Probleme gibt, die Version korrekt zu erkennen, aber einige sehr wichtige Funktionen für mich defekt sind.
export DRUSH_PHP=php53
. Eine andere Lösung wäre, sicherzustellen, dass php53 in Ihrem PATH vor jedem anderen PHP erscheint, wenn Sie Drush ausführen.source .bash_profile
für sofortige Wirkung tun mussteHier ist eine andere Lösung:
Erstellen Sie einen symbolischen Link zur gewünschten Version von PHP (in meinem Fall PHP5.4) in -s / usr / local / bin / php54 ~ / bin / php
Wir müssen die Priorität von ~ / bin in $ PATH so ändern, dass sie vor / usr / local / bin (wo sich der ursprüngliche PHP-Interpreter befindet) angezeigt wird. find ~ / -name .bash_profile | xargs sed -i / \ $ PATH: \ $ HOME / bin / \ $ HOME / bin: \ $ PATH / g '
Laden Sie .bash_profile source ~ / .bash_profile neu
Quelle: http://webiga.com/2013/06/22/change-default-version-of-php-at-webfaction/
quelle
Ich bin gerade darauf gestoßen, nachdem ich Drush unter Windows aktualisiert habe. Auf dem Server wird eine ältere Version von PHP ausgeführt, und die mit Drush gelieferte Version von PHP wurde nicht übernommen.
Ich konnte das Problem beheben, indem ich den Pfad zu php.exe in der Datei drush.bat unter angab
c: \ Dokumente und Einstellungen \ Alle Benutzer \ Anwendungsdaten \ drush \ drush.bat
Ich habe gerade den vollständigen Pfad zu PHP hinzugefügt, indem ich diese Zeile geändert habe:
@ php.exe "% ~ dp0drush.php" --php = "php.exe"% * dazu:
@ "c: \ program files \ drush \ php \ php.exe" "% ~ dp0drush.php" --php = "php.exe"% *
quelle
Das Problem für mich war, dass drush nicht mit der richtigen PHP-Version funktionierte. Ich denke, das Problem war, dass es PHP 7 verwendete und ich PHP 5.6 brauchte. Also rannte ich in die Konsole:
Und das Ergebnis war (siehe PHP-Pfad für 5.6):
Dann ging ich zu meiner ~ / .bashrc-Datei und fügte eine Zeile hinzu, in der der PHP-Pfad für drush (und save) festgelegt ist:
Dann habe ich .bashrc mit folgendem aktualisiert (verpassen Sie nicht den Punkt am Anfang des Befehls):
Und das ist es! Ich hoffe, das hilft!
quelle
Angenommen, Sie haben drush mit Composer installiert und möchten Ihren Befehl mit PHP 7 ausführen (dies funktioniert auch für 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]
quelle