2017-08-28 42 views
0

我试图在AWS PHP 7.0实例(Elastic Beanstalk,但这并不重要)上部署Laravel应用程序。Laravel 5.4由于Doctrine包而无法工作PHP 7.0

我收到以下错误

+ composer.phar install --no-ansi --no-interaction 
Do not run Composer as root/super user! See https://getcomposer.org/root for details 
Loading composer repositories with package information 
Installing dependencies (including require-dev) from lock file 
Your requirements could not be resolved to an installable set of packages. 

    Problem 1 
    - Installation request for doctrine/instantiator 1.1.0 -> satisfiable by doctrine/instantiator[1.1.0]. 
    - doctrine/instantiator 1.1.0 requires php ^7.1 -> your PHP version (7.0.16) does not satisfy that requirement. 
    Problem 2 
    - doctrine/instantiator 1.1.0 requires php ^7.1 -> your PHP version (7.0.16) does not satisfy that requirement. 
    - phpunit/phpunit-mock-objects 3.4.4 requires doctrine/instantiator ^1.0.2 -> satisfiable by doctrine/instantiator[1.1.0]. 
    - Installation request for phpunit/phpunit-mock-objects 3.4.4 -> satisfiable by phpunit/phpunit-mock-objects[3.4.4]. 
(Executor::NonZeroExitStatus) 

任何想法我怎么能抑制这种或周围得到PHP 7.0?

我composer.json

{ 
    "name": "myapp", 
    "description": "My App.", 
    "keywords": ["framework", "laravel", "lumen"], 
    "license": "MIT", 
    "type": "project", 
    "require": { 
     "php": ">=5.6.4", 
     "laravel/lumen-framework": "5.4.*", 
     "vlucas/phpdotenv": "~2.2", 
     "romanpitak/nginx-config-processor": "^0.2.1", 
     "symfony/stopwatch": "^3.2", 
     "comodojo/zip": "^2.1", 
     "riimu/kit-pathjoin": "1.*", 
     "aws/aws-sdk-php": "^3.25", 
     "spatie/url": "dev-master" 
    }, 
    "require-dev": { 
     "fzaninotto/faker": "~1.4", 
     "phpunit/phpunit": "~5.0", 
     "mockery/mockery": "~0.9" 
    }, 
    "autoload": { 
     "psr-4": { 
      "App\\": "app/" 
     } 
    }, 
    "autoload-dev": { 
     "classmap": [ 
      "tests/", 
      "database/" 
     ] 
    }, 
    "scripts": { 
     "post-root-package-install": [ 
      "php -r \"copy('.env.example', '.env');\"" 
     ] 
    }, 
    "minimum-stability": "dev", 
    "prefer-stable": true 
} 

附:我没有使用任何单元测试。我试图摆脱“require-dev”包并仍然是同样的错误。

+0

为什么要部署开发依赖项?这是一个测试环境吗?如果没有,运行'composer install --no-dev'。请参阅https://getcomposer.org/doc/03-cli.md#install。 – localheinz

+1

它看起来像你没有摆脱composer.lock文件每次更改composer.json之间?如果composer.lock文件存在,'composer install'不会查看composer.json,是不是?线索是,你说你已经从composer.json中删除了你的phpunit依赖项,但它仍然在“错误”消息中被间接地提及。 –

回答

1

错误是“composer.lock”存在,当我们运行“composer install”时会发生什么?

现在是时候再次运行composer安装。这一次,Composer将会看到你的目录中有一个composer.lock文件。相反,如果找到兼容版本的相关性来完成composer.json文件,它将安装您的composer.lock文件中定义的相关性的确切版本。https://laravel-news.com/understanding-the-composer-lock-file