【问题标题】:Calling Composer With Specific PHP Version on Homestead在 Homestead 上调用具有特定 PHP 版本的 Composer
【发布时间】:2018-02-15 17:40:53
【问题描述】:

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

composer require vlucas/phpdotenv

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

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

"config": {
    "platform": {
        "php": "~7.0"
    }
},

当我运行composer update 时,我得到了这个错误:

[UnexpectedValueException]
Invalid version string "~7.0"

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

【问题讨论】:

    标签: php composer-php homestead


    【解决方案1】:

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

    /usr/local/bin/composer
    

    Homestead documentation 讨论了支持的 multiple PHP versions 以及如何从 Artisan 的命令行调用它们。将其与上面的作曲家路径相结合,您可以这样做:

    php7.0 /usr/local/bin/composer update
    

    【讨论】:

    【解决方案2】:

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

    【讨论】:

    • php70: command not found 您的aliases 文件中缺少该别名。将此文件的内容复制:github.com/laravel/homestead/blob/master/resources/aliases 到您的 ~/.bash_aliases 然后注销 vagrant 并重新登录,它应该可以工作。
    • 如果您添加这些附加说明,我会接受您的回答。
    猜你喜欢
    • 1970-01-01
    • 2017-02-14
    • 2013-02-25
    • 2020-05-27
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    • 2016-04-30
    相关资源
    最近更新 更多