php 版本与作曲家不匹配

问题描述 投票:0回答:3

我想在共享托管服务器中安装 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?

php apache composer-php version cpanel
3个回答
1
投票

您的 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
下,根据需要进行修改。


0
投票

我在使用 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


-1
投票

composer.json 中的更改

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

它可能有效

© www.soinside.com 2019 - 2024. All rights reserved.