【问题标题】:Composer uses wrong php version, but php -v shows the correct one (Ubuntu)Composer 使用错误的 php 版本,但 php -v 显示正确的版本(Ubuntu)
【发布时间】:2018-02-05 10:25:38
【问题描述】:

我正在尝试安装我的作曲家包,但它给了我这个:

This package requires php >=7.0.0 but your PHP version (5.5.9)

但是php -v 给了我这个:PHP 7.0.22-0ubuntu0.16.04.1 (cli) ( NTS )

我正在运行 Ubuntu 16.04.3 LTS 机器,我找到了一些适用于 Mac 和 Windows 的灵魂,但似乎没有人在 Linux 上遇到问题?

【问题讨论】:

  • 什么是 phpinfo();在浏览器中调用显示?在安装 7.x 之前,您之前是否安装了 5.5.9?
  • 小心,因为 CLI 版本可能与 phpinfo() 显示的不同。
  • 你需要使用 alias php 命令来传递会话

标签: php ubuntu composer-php


【解决方案1】:

试试这个:

composer install --ignore-platform-reqs

或者 composer.json 中的这个

"config": {
    "preferred-install": "dist",
    "platform": {
        "php": "7.0.0"
    }
}

在第二个解决方案中,基本上你是在伪造一个平台,然后运行composer.phar update

【讨论】:

  • 这行得通,但这是什么原因呢? which php 显示 /usr/bin/php/usr/bin/php -v 也显示 7.0.22...
  • @PrimuS,我不知道,可能是composer 的错误。 PHP版本总是有问题。所以让它接受它。没关系
  • @PrimuS,前提是您没有同时使用两个平台,例如(Xampp 和 Wamp)?
  • 不,忽略平台要求是完全错误的,它隐藏了实际问题本身。确保您只安装了一个 PHP 版本。那么这应该可以解决问题。请参阅下面的回复。
  • @Roland 是正确的,这绝不是一个答案。 & @Roland 略有错误,OP 可以有多个 PHP 版本,但已将所需的版本设置为默认值。在 ubuntu 中,OP 可以使用 sudo apt update-alternative --config php
【解决方案2】:

试试这个对我有用:

  alias php='/usr/local/php7/bin/php'

php composer.phar install

【讨论】:

    【解决方案3】:

    composerreferences PHP 可执行文件如下:

    #!/usr/bin/env php

    当我执行 which php 时,我在 GIT-Bash (Windows 10) 下得到 /c/Program Files/php-7.1/php

    在 Linux 下(我家里有 Debian),php 可能是指向实际 PHP 二进制文件的符号链接。

    请执行以下操作:

    • ls -l 'which php' 仔细检查上述php(您必须将' 替换为反引号,因为stackoverflow 不允许转义=显示它们)
    • 确保您只安装了一个 PHP 版本,这可能会导致混合不兼容的版本,这可能是您问题的根本原因

    这应该可以帮助您找到根本原因。

    【讨论】:

    • 您知道如何重定向作曲家以访问此文件/PHP 版本吗?我也有问题,通过显示 phpinfo() 我得到 7.4 但 Composer 使用的是 7.3,这个文件中有 7.4,我想使用它。谢谢!
    • 虽然我只想运行 1 个 php 版本,但我在共享主机上。任何使这项工作在共享主机上正常工作的方法。它正在检测主机的默认值 7.2 而不是我的默认值 7.4
    【解决方案4】:

    如果您使用的是基于 Debian 的系统,您可以使用以下命令要求它全局使用特定版本(取决于您的 php 版本的安装方式和位置):

    sudo update-alternatives --set php /usr/bin/php7.2
    

    update-alternatives 创建、删除、维护和显示 有关组成 Debian 的符号链接的信息 替代系统。

    【讨论】:

      【解决方案5】:

      只是在这里分享,因为我遇到了同样的问题,并在搜索时首先找到了这个帖子。 对我来说,我有一个带有 PHP 5.6 的 Windows 服务器。?就它以及PHP 7.2。?在上面。我已将 IIS 配置为使用 7.2,但 5.6 仍在路径下的环境变量中。打开系统属性>高级选项卡>“环境变量...”。编辑“路径”,从路径中删除对“C:/program files (x86)/PHP/v5.6”的引用并保存。 重新启动你的终端,你应该被设置。希望对某人有所帮助。

      【讨论】:

        猜你喜欢
        • 2018-03-04
        • 2019-02-08
        • 1970-01-01
        • 2018-02-17
        • 2023-03-13
        • 2018-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多