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 update
和composer 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 5.6 的 Envoyer 部署失败引用不匹配的 PHP 版本