php版本与作曲家不匹配

Posted

技术标签:

【中文标题】php版本与作曲家不匹配【英文标题】:php version mismatch with composer 【发布时间】:2021-02-22 18:20:15 【问题描述】:

我想在共享主机服务器中安装 php 依赖项,但是 composer 说我的 php 版本是 5.6.40(对于我的依赖项来说太旧了),这是真的,所以我将 php 版本从 cpanel 设置为 7.3.23有一个叫做“MultiPHP manager”的东西。好吧,直到我重试运行composer install,composer 一直说我的php 版本是5.6.40

然后我在一个虚拟页面中检查了phpinfo(),它说我的版本是7.3.23。我还跑了php -v,输出显示我的版本是7.3.23

我试过了

重新加载httpd 运行composer updatecomposer self-update 但它说allow_url_fopen 已禁用,但我使用名为“MultiPHP INI 编辑器”的cpanel 工具启用了它,phpinfo() 表示已启用。

如果我做错了什么,有人可以告诉我吗?或者composer怎么不能使用更新的php?

【问题讨论】:

这能回答你的问题吗? Tell Composer to use Different PHP Version 另外,重新加载你的网络服务器本身并不影响 Composer,因为它不是通过你的网络服务器运行的 【参考方案1】:

composer.json 的变化

"require": 
    "php": "^7.3.2",
......

它可能有效

【讨论】:

作曲家一直说我的php版本是5:/ 重启补丁 你的意思是apache吗?我已经试过了,我说我重新加载了httpd 不,这不起作用,因为这不会更改用于运行 Composer 的 PHP 版本【参考方案2】:

您的 cli php 版本(您用于 composer install 的版本)和您的 apache 在服务器中运行的 php 版本(您在 phpinfo() 页面中看到的版本)可能不匹配。

尝试在您的控制台中运行它:

$ php -v

这将输出您在运行 composer install 时实际使用的版本

要在您的服务器上运行相同的版本,您可能需要在您的机器上找到 PHP 7 二进制文件(可能是 /usr/bin/php7.3,您可以尝试执行 $ whereis php),然后:

/usr/bin/php7.3 /usr/local/bin/composer install

这是假设您的作曲家二进制文件在/user/local/bin/composer 下,根据需要进行修改。

【讨论】:

以上是关于php版本与作曲家不匹配的主要内容,如果未能解决你的问题,请参考以下文章

如果 php mysql 客户端与 mysql 服务器版本不匹配会出现啥问题?

使用Laravel的语义版本控制进行包版本控制

升级 Laravel 5.6 的 Envoyer 部署失败引用不匹配的 PHP 版本

为啥我的 foreach 循环与 users.json 文件中的键不匹配

正则表达式: NFA引擎匹配原理

httpclient与httpcore版本不匹配导致的编译问题