2017-10-17 26 views
0

古いLaravelプロジェクトをインストールしようとしています。Laravel Composerで間違ったPHPバージョンが表示される

私は私が

php -v 

を実行すると、私はこれは私の作曲の内容である

PHP 7.1.10 (cli) (built: Oct 12 2017 14:00:12) (ZTS) 

次の結果を取得するには、次のエラー

This package requires php >=5.6.4 but your PHP version (5.5.35) does not satisfy that requirement. 

を取得作曲をインストールし実行します.json

{ 
    "name": "laravel/laravel", 
    "description": "The Laravel Framework.", 
    "keywords": ["framework", "laravel"], 
    "license": "MIT", 
    "type": "project", 
    "require": { 
     "php": ">=5.6.4", 
     "doctrine/dbal": "^2.6", 
     "guzzlehttp/guzzle": "^6.3", 
     "intervention/image": "^2.4", 
     "intervention/imagecache": "^2.3", 
     "laravel/framework": "5.4.*", 
     "laravel/tinker": "~1.0", 
     "laravelcollective/html": "^5.4", 
     "maatwebsite/excel": "^2.1", 
     "sentry/sentry-laravel": "^0.8.0", 
     "spatie/laravel-glide": "^3.2", 
     "spatie/laravel-permission": "^2.6", 
     "spatie/laravel-pjax": "^1.3" 
    }, 
    "require-dev": { 
     "fzaninotto/faker": "~1.4", 
     "mockery/mockery": "0.9.*", 
     "phpunit/phpunit": "~5.7" 
    }, 
    "autoload": { 
     "classmap": [ 
      "database" 
     ], 
     "psr-4": { 
      "App\\": "app/" 
     } 
    }, 
    "autoload-dev": { 
     "psr-4": { 
      "Tests\\": "tests/" 
     } 
    }, 
    "scripts": { 
     "post-root-package-install": [ 
      "php -r \"file_exists('.env') || copy('.env.example', '.env');\"" 
     ], 
     "post-create-project-cmd": [ 
      "php artisan key:generate" 
     ], 
     "post-install-cmd": [ 
      "Illuminate\\Foundation\\ComposerScripts::postInstall", 
      "php artisan optimize" 
     ], 
     "post-update-cmd": [ 
      "Illuminate\\Foundation\\ComposerScripts::postUpdate", 
      "php artisan optimize" 
     ] 
    }, 
    "config": { 
     "preferred-install": "dist", 
     "sort-packages": true, 
     "optimize-autoloader": true 
    } 
} 

このプロジェクトで私はPHP 5.6を実行しているとどのように考えられるでしょうか?

ありがとうございます。

+0

あなたはどのような環境を使用していますか? composer.lockファイルを試して削除してからもう一度実行してください –

+1

システムに複数のPHPバージョンがインストールされており、Webサーバーが5.5.35を使用するように設定されている可能性があります。 Webサーバーの設定ファイルを確認してください。 –

+0

@JoshGriggsこれはただのLaravel Valetです。 – Notflip

答えて

1

私もこの問題を抱えていました。すべての作者パッケージを更新しない場合は、composer.lockファイルを手動で変更し、実際のP​​HPバージョンをplatform > phpにJSONオブジェクトで書き込むことで、この問題を解決できます。

... 
"platform": { 
    "php": "7.1" 
} 
... 

それは動作しますが、これを行うための最も推奨される方法は、あなたのcomposer.lockファイルを削除composer.jsonplatform > phpバージョンを変更してからcomposer installを実行することになります。

+0

それは良い解決策です!私が推測するよりも良い更新。私はいつも更新の後に何かが壊れるだろうと心配している – Notflip

+0

これは良い解決策です!情報gd.silvaをありがとう。 @Notflip私の答えはあなたのためにもうまくいくと思いますか? –

+0

はい、ほとんどの状況ですべてを更新するのは最良の選択肢ではありません。 –

0

古いlaravelプロジェクトをインストール後、あなただけのコマンドを実行する必要がある:

composer update

これはcomposer.jsonファイルで定義されているすべての依存関係を更新します、とあなたはlaravelの新しいプロジェクトをインストールするときに、あなたが使用する必要があります。

composer install

あなたがphp versionを変更したい場合は、単にphpinfo()を使用して、それをチェックします、これはあなたのローカルサーバーで使用される完璧なPHPのバージョンを提供します!

これはあなたとあなたを理解するのに役立ちますように!

+0

これが本当であるかどうかわかりません。更新は依存関係を制約内で新しいバージョンに更新しますか?インストールするだけで、現在のバージョンがインストールされます。通常は古いプロジェクトでも動作しますか? – Notflip

+0

はい、あなたは正しいです。 –

1

これはconfig/envの問題です。理想的には、Apacheにあなたは、このようにバージョンを入れ替えることができ、でテストするために、複数のPHPのバージョンを持つことができます。

Example: 
sudo a2dismod php5.6 
sudo a2enmod php7.0 
sudo service apache2 restart 

いただきました、ここでされて起こって彼は、PHP-CLI PHP7で実行するように構成されて実行されている-v PHPを実行するときしかし、おそらく彼のapacheは5.5を有効にしています。 so

sudo a2dismod php5.5 
sudo a2enmod php7.0 
sudo service apache2 restart 
関連する問題