在Homestead上调用具有特定PHP版本的Composer

Son*_*nny 3 php composer-php homestead

我正在使用Homestead开发一个将在PHP 7.0服务器上的站点.我想使用.env文件,所以我运行了这个Composer命令:

composer require vlucas/phpdotenv
Run Code Online (Sandbox Code Playgroud)

当我仔细阅读文件时composer.lock,我注意到依赖项,doctrine/annotations需要PHP 7.1.

我尝试将其添加到我的composer.json文件中:

"config": {
    "platform": {
        "php": "~7.0"
    }
},
Run Code Online (Sandbox Code Playgroud)

当我跑composer update,我得到这个错误:

[UnexpectedValueException]
Invalid version string "~7.0"
Run Code Online (Sandbox Code Playgroud)

我意识到这是因为PHP 7.2是Homestead的默认版本.如何使用PHP 7.0而不是PHP 7.2运行Composer?

Son*_*nny 12

执行which composer会给你这个输出:

/usr/local/bin/composer
Run Code Online (Sandbox Code Playgroud)

宅基地文件讨论了多个PHP版本的支持,以及如何从工匠从命令行调用它们.将其与上面的作曲家路径相结合,可以实现以下目的:

php7.0 /usr/local/bin/composer update
Run Code Online (Sandbox Code Playgroud)


joe*_*son 6

运行该命令php70,将PHP 7.0设置为PHP的默认系统版本,然后就可以composer正常运行.

  • `php70:command not found`你错过了`aliases`文件中的别名.将此文件的内容:https://github.com/laravel/homestead/blob/master/resources/aliases复制到〜/ .bash_aliases,然后注销vagrant并重新进入,它应该可以正常工作. (2认同)