2017-10-17 6 views
0

이전 Laravel 프로젝트를 설치하려고합니다.Laravel 작성자가 잘못된 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을 실행하고 있다고 생각할 수 있습니까?

감사합니다. 당신은 오래된 laravel 프로젝트를 설치할 때

+0

Homestead는 어떤 환경을 사용하고 있습니까? composer.lock 파일을 제거한 후 다시 실행하십시오. –

+1

시스템에 둘 이상의 PHP 버전이 설치되어 있고 웹 서버가 5.5.35를 사용하도록 구성되어있을 수 있습니다. 웹 서버의 구성 파일을 확인하십시오. –

+0

@JoshGriggs 이것은 단지 Laravel Valet입니다. – Notflip

답변

1

이 문제도 발생했습니다. 모든 작곡가 패키지를 업데이트하지 않으려면 composer.lock 파일을 수동으로 변경하고 실제 PHP 버전을 platform > php에 JSON 객체로 작성하여이 문제를 해결할 수 있습니다.

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

작동하지만, 가장 권장되는 방법은이 composer.jsonplatform > php 버전을 변경 한 후 composer install을 실행하여 composer.lock 파일을 삭제하는 것입니다 수행합니다.

+0

그건 좋은 해결책이야! 내가 추측하는 것보다 낫다. 나는 언제나 업데이 트를 깨고 무언가를 깨닫는다. – Notflip

+0

이것은 좋은 해결책이다! info gd.silva에 감사드립니다. @ Notflip 내 대답은 또한 당신을 위해 일한다고 생각합니까? –

+0

예, 대부분의 경우 모든 것을 업데이트하는 것이 최선의 방법은 아닙니다. –

0

그때 당신은 단지 명령을 실행하는 것입니다 필요

composer update

당신이 laravel의 새로운 프로젝트를 설치할 때이 composer.json 파일에 정의 된 모든 종속성을 업데이트 한 것,

composer install

당신이 php version을 변경하려면, 단지 phpinfo()를 사용하여 확인 : 당신은 사용할 필요가 , 이것은 당신에게 로컬 서버에서 사용되는 완벽한 PHP 버전을 제공합니다!

희망이 있으면 도움이됩니다.

+0

이게 사실인지 잘 모르겠습니다 .. 업데이트는 제약 조건 내에서 새로운 버전으로 종속성을 업데이트합니다. 맞습니까? 설치는 현재 버전을 설치하기 만합니다. 일반적으로 이전 버전의 프로젝트에서도 사용할 수 있습니까? – Notflip

+0

네, 맞아요. –

1

이것은 config/env 문제입니다. 이상적으로는 아파치에서이 같은 버전을 교체 할 수 있습니다, 함께 테스트하기 위해 여러 PHP 버전을 가질 수

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

무엇이 여기 일어나고 그는 PHP-CLI php7에서 실행되도록 구성되어 실행 -v PHP를 실행할 때 , 아마도 그의 아파치는 5.5 버전을 지원한다. so

sudo a2dismod php5.5 
sudo a2enmod php7.0 
sudo service apache2 restart