覆盖composer中的PHP基本依赖项

时间:2015-09-29 08:07:27

标签: php composer-php

我尝试在只有PHP 5.5.6的主机上安装Laravel 5.1。虽然我要求客户升级,但这可能不可行/不可行。

所以我得到了:

- This package requires php >=5.5.9 but your PHP version (5.5.6)
   does not satisfy that requirement.

on composer.phar install

有没有办法做一个忽略这种依赖的作曲家安装?

我认为它应该是安全的,因为只有5.5.6到5.5.9的错误修复。

7 个答案:

答案 0 :(得分:75)

您可以使用--ignore-platform-reqs选项作为installupdate等作曲家命令。

  

- ignore-platform-reqs :忽略 php ,hhvm,lib- *和ext- *要求并强制安装即使本地计算机无法满足这些。另请参阅platform config选项。

https://getcomposer.org/doc/03-cli.md

所以你可以试试

composer install --ignore-platform-reqs

答案 1 :(得分:31)

错误消息表示来自主composer.json的要求。版本要求可以只是适配器:

"require": {
    "php": ">=5.5",

更改了这样的版本之后我得到了:

  Problem 1
    - Installation request for classpreloader/classpreloader 2.0.0 -> satisfiable by classpreloader/classpreloader[2.0.0].
    - classpreloader/classpreloader 2.0.0 requires php >=5.5.9 -> your PHP version (5.5.6) or "config.platform.php" value does not satisfy that requirement.
  Problem 2
    - Installation request for laravel/framework v5.1.17 -> satisfiable by laravel/framework[v5.1.17].
    - laravel/framework v5.1.17 requires php >=5.5.9 -> your PHP version (5.5.6) or "config.platform.php" value does not satisfy that requirement.
  Problem 3
    - Installation request for laravelcollective/html v5.1.6 -> satisfiable by laravelcollective/html[v5.1.6].
    - laravelcollective/html v5.1.6 requires php >=5.5.9 -> your PHP version (5.5.6) or "config.platform.php" value does not satisfy that requirement.
  Problem 4
    - laravel/framework v5.1.17 requires php >=5.5.9 -> your PHP version (5.5.6) or "config.platform.php" value does not satisfy that requirement.
    - jenssegers/agent v2.1.7 requires illuminate/support ~4.0|~5.0 -> satisfiable by laravel/framework[v5.1.17].
    - Installation request for jenssegers/agent v2.1.7 -> satisfiable by jenssegers/agent[v2.1.7].

使用composer.json中的以下代码段,可以模拟php版本

[...]
"config": {
    "preferred-install": "dist",
    "platform": {
        "php": "5.5.9"
    }
}

Doc:https://getcomposer.org/doc/06-config.md#platform

  

<强>平台

     

允许您虚假平台软件包(PHP和扩展程序),以便您可以模拟生产环境或在配置中定义目标平台。示例:{“php”:“5.4”,“ext-something”:“4.0”}。

不要忘记在此之后运行composer.phar update

答案 2 :(得分:1)

运行独立于版本的命令可解决此错误 composer install --ignore-platform-reqs

答案 3 :(得分:1)

我遇到了可以通过以下命令解决的相同问题:

composer config platform.php 7.2.22 

***您可以根据自己的需要替换PHP版本。

答案 4 :(得分:0)

在composer.json中更改php版本

删除composer.lock

运行:安装作曲家

对我有用

答案 5 :(得分:0)

只需将这些行添加到composer.json文件中

  "config": {
    "platform": {
      "php": "5.5.9"
    }
  },

然后运行命令,

composer update or install

答案 6 :(得分:0)

Root composer.json 需要 php ^7.3 但您的 php 版本 (8.0.0) 不满足该要求。

composer install --ignore-platform-reqs