2016-09-12 18 views
1

私はSymfony 2.8.9サイトで作業していますが、PHP 5.5以上が必要です。 Pleskの12.5で、私は大丈夫である5.6を使用するようにサーバーを設定しているが、私はssh経由composer installコマンドを実行すると、私は次のメッセージが表示されます:PHPのバージョンが矛盾します

  • のsymfony/symfonyのv2.7.0はPHP> = 5.3が必要です.9 - >あなたのPHPバージョン(5.3.3)はその要件を満たしていません。

だから私はphp -vを入力し、次のメッセージreceieve:

PHP 5.3.3(CLI)(組み込み:2016年8月11日午後08時33分53秒)

をI Pleskで5.6に設定されているにもかかわらず、コマンドラインで5.3.3と表示されている理由がわかりません。どうすればこの問題を回避できますか?私は、私の作曲家の更新を実行することはできませんし、キャッシュをクリアしようとしても、私はPHPの古いバージョンに関連する特定のエラーをスローする。

+2

CLIとWebサーバーは、異なるバージョンのPHPを使用することがあります。同じバージョンのPHPを使用していることを確認するには、webserverで 'phpinfo()'を使い、 'php.in'のパスを見て、同じプロセスに従うか、' php -i | grep 'php.ini' 'コマンドラインで' php.ini'が読み込まれたことをSSHで確認してください。彼らはあなたのケースでは、別の 'php.ini'を指しているかもしれません。 – Samundra

+0

これは間違ったものを使っていますが、Pleskで指定したものを使用する方法はわかりません。 –

+0

あなたが 'php5.6'を持っていることを知っていて実行可能ファイルへの完全なパスを知っているなら' /path/to/php5.6 composer update'を試すことができますが、これが動作するかどうかはわかりません。 – Samundra

答えて

1

あなたのサーバーには、さらに多くのバージョンのphpがありますか? Webサーバーが1つのバージョンを使用し、CLIが別のバージョンを使用する可能性があります。

何が呼び出されるかを確認するには、コマンドwhich phpを試してください。

+0

より良いコマンドは、サーバが 'Ubuntu'ベースの場合に' sudo update-alternatives --config php'を使うことです。複数のバージョンのPHPがインストールされていることが表示され、デフォルトに設定するPHPを選択できます。 – Samundra

+0

私は何も更新したくないですが。私はここでその許可を持っていません - 私はコマンドラインが5.6バージョンを実装していることを確認したいだけです –

1

pleskサーバを使用しているので、正しいphp-cliバイナリを自分で使用する必要があります。

インストールされているPHPのバージョンをお使いの場合には/opt/plesk/php次の場所にあります。 /opt/plesk/php/5.6/bin/php

このサーバーのルートであれば、あなたが簡単なシンボリックリンクを自分で助けることができる: ln -s /opt/plesk/php/5.6/bin/php /usr/local/bin/php-5.6

あなたはphp-5.6 composer.phar

を使用することができます

もしそうでなければ、完全パスを使用するか、.bashrcにエイリアスを追加する必要があります。

代わりに、--ignore-platform-reqsをコンポーザコールに追加することもできます。ほとんどの場合、動作します(phpの要件は無視されます)。 - 作者のskript自体が5.6の特定の構文を使用する場合、これはもちろん機能しません。

編集:私のpleskはUbuntu 16.04で動作しているので、システムのPHPは5.5.9になっています。これは--ignore-platform-reqsのトリックを非常に有効にします。私はあなたがもっと困っていると思う。