it-swarm-ja.com

PHPバージョンが正しく検出されない

PHPの複数のバージョンがインストールされているホストでDrushを実行しています。デフォルトでは、php --versionは5.2.xを提供しますが、php53およびphp54も使用できます。したがって、.bash_profileにはalias php='php53'php --version = 5.3.13)、Drushをいくつかのコマンドで機能させる。

しかし、「コマンドラインPHPインストールが古すぎます。Drushには、いくつかの非常に便利なコマンドについて、少なくともPHP 5.3.2)メッセージが必要です。

いくつかの本当に迷惑なインスタンス:

  • drush pm-updateは、すべてのモジュールとコアを正常にバックアップして更新したことを報告し、PHPバージョンエラーを返し、すべてのバックアップを復元します。詳細モードでは、エラーの前に来るコマンドは: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はすぐにPHPバージョンエラーを返します

これまでに試した他のコマンドは問題なく動作します。 Drushがphp53バイナリを使用している場合と使用していない場合、またはバージョンを正しく検出できない場合、なぜそうなるのかはわかりませんが、いくつかの非常に重要な機能が壊れています。

10
handsofaten

Drushはコマンドとしてphpだけを直接使用するのではなく、フルパスを必要とします。 Drushの最新バージョンでは、次の行を.bash_profileに追加して、使用するPHPを設定できます。

export DRUSH_PHP=/Applications/MAMP/bin/php/php5.3.14/bin/php

これはMAMPの例にすぎませんが、独自のパスを使用して変更することもできます。

21
yvan

ここに別の解決策があります:

  1. 目的のバージョンのphp(私の場合はphp5.4)へのシンボリックリンクを作成します。ln -s/usr/local/bin/php54〜/ bin/php

  2. $ PATH内の〜/ binの優先順位を変更して、/ usr/local/bin(元のphpインタープリターが置かれている場所)の前に現れるようにする必要があります〜/ -name .bash_profile | xargs sed -i 's/\ $ PATH:\ $ HOME/bin/\ $ HOME/bin:\ $ PATH/g'

  3. .bash_profileソースの再読み込み〜/ .bash_profile

ソース: http://webiga.com/2013/06/22/change-default-version-of-php-at-webfaction/

2

WindowsでDrushをアップグレードした後、これに遭遇しました。サーバーで古いバージョンのPHPが実行されており、Drushに付属しているPHPのバージョンを取得していませんでした。

次の場所にあるdrush.batファイルでphp.exeへのパスを指定することで修正できました

c:\ documents and settings\all users\application data\drush\drush.bat

次の行を変更して、PHPにフルパスを追加しました。

@ php.exe "%〜dp0drush.php" --php = "php.exe"%*これに:

@ "c:\ program files\drush\php\php.exe" "%〜dp0drush.php" --php = "php.exe"%*

0
Wayne

composer)でdrushをインストールし、php 7を使用してコマンドを実行したいとします(これはAcquiaクラウド環境でも機能します)

/usr/local/php7.1/bin/php ../vendor/drush/drush/drush.php --php =/usr/local/php7.1/bin/php [your_drush_command_here]

私にとっての問題は、drushが正しいPHP=バージョンで機能していないことでした。問題は、それがPHP 7を使用していたことであり、 PHP 5.6。コンソールで実行しました:

whereis php

そして結果は(PHPパスを参照): enter image description here

次に、〜/ .bashrcファイルに移動し、PHP drush(and save))のパスを設定する1行を追加しました。

dRUSH_PHP =/usr/bin/php5.6をエクスポートします

次に、.bashrcを次のように更新しました(コマンドの先頭のポイントをお見逃しなく):

。 〜/ .bashrc

以上です!お役に立てば幸いです。

0
Beto Aveiga