我想在共享托管服务器中安装 php 依赖项,但作曲家说我的 php 版本是
5.6.40
(对于我的依赖项来说太旧了),这是真的,所以我用一些东西将 php 版本从 cpanel 设置为 7.3.23
称为“MultiPHP 管理器”。好吧,直到我重新尝试运行 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?
您的 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
这是假设您的 Composer 二进制文件位于
/user/local/bin/composer
下,根据需要进行修改。
我在使用 Composer 和 apache 时遇到了类似的问题。 Composer 使用的是我的 php cli 版本,而不是我的“php apache 版本”。
你可以尝试:
composer install --ignore-platform-reqs
但是要小心,只有当你确保能够使用指定的 php 版本时。
另一种方法可能是强制 Composer 在您的composer.json 文件中使用以下“硬代码”进行安装:
"config": {
"platform": {
"php": "7.3.23"
}
}
您可以在此处查看有关 Composer 配置架构的更多信息:https://getcomposer.org/doc/04-schema.md#config
composer.json 中的更改
"require": {
"php": "^7.3.2",
......
}
它可能有效