您的需求无法被解析为可安装的软件包集。

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

对不起,这个问题和另一个问题重复了。我无法解决我的问题。

我正在做一个项目,基于 Ratchet. 我正在尝试运行 Push Integration 例子。所以,为了运行,我应该使用composer来获取一些依赖关系。我做了一个composer.json文件,如下图所示。

{
    "autoload": {
        "psr-0": {
            "MyApp": "src"
        }
    },
    "require": {
        "cboden/ratchet": "0.3.*",
        "react/zmq": "0.2.*|0.3.*"
    }
}

当我在上面执行composer时,出现了以下错误。

Loading composer repositories with package information
Installing dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - react/zmq v0.3.0 requires ext-zmq * -> the requested PHP extension zmq is missing from your system.
    - react/zmq v0.2.0 requires ext-zmq * -> the requested PHP extension zmq is missing from your system.
    - Installation request for react/zmq 0.2.*|0.3.* -> satisfiable by react/zmq[v0.2.0, v0.3.0].

下面你可以找到composer.json的内容 RatchetZMQ:

ZMQ:

{
    "name": "react/zmq",
    "description": "ZeroMQ bindings for React.",
    "keywords": ["zmq", "zeromq"],
    "license": "MIT",
    "require": {
        "php": ">=5.4.0",
        "ext-zmq": "*",
        "evenement/evenement": "~2.0",
        "react/event-loop": "0.4.*"
    },
    "require-dev": {
        "ext-pcntl": "*"
    },
    "autoload": {
        "psr-0": { "React\\ZMQ": "src" }
    },
    "extra": {
        "branch-alias": {
            "dev-master": "0.4-dev"
        }
    }
}

Ratchet:

{
    "name": "cboden/ratchet"
  , "type": "library"
  , "description": "PHP WebSocket library"
  , "keywords": ["WebSockets", "Server", "Ratchet", "Sockets"]
  , "homepage": "http://socketo.me"
  , "license": "MIT"
  , "authors": [
        {
            "name": "Chris Boden"
          , "email": "[email protected]"
          , "role": "Developer"
        }
    ]
  , "support": {
        "forum": "https://groups.google.com/forum/#!forum/ratchet-php"
      , "issues": "https://github.com/ratchetphp/Ratchet/issues"
      , "irc": "irc://irc.freenode.org/reactphp"
    }
  , "autoload": {
        "psr-0": {
            "Ratchet": "src"
        }
    }
  , "require": {
        "php": ">=5.3.9"
      , "react/socket": "0.3.*|0.4.*"
      , "guzzle/http": "~3.6"
      , "symfony/http-foundation": "~2.2"
      , "symfony/routing": "~2.2"
    }
}

What is wrong? - Please give me a solution. 请给我一个解决方案。先谢谢你:)

php composer-php zeromq php-extension
3个回答
18
投票

好了,我们开始吧...

你必须在操作系统中事先安装好ZMQ和ZMQ绑定。

首先:安装0MQ:进入到 http:/zeromq.orgarea:下载。 然后根据你的操作系统选择一个包,在我的例子中,我选择了POSIX tarball Stable Release 4.0.4。

~$ tar -xvf zeromq-4.0.4.tar
~$ cd zeromq-4.0.4
~$ ./configure
~$ make
~$ sudo make install

好了,我们刚刚安装了ZMQ,现在需要安装zmq php绑定...确保你已经安装了php-dev和php pear。如果没有:

~$ sudo apt-get install php5-dev php-pear
~$ sudo pecl install zmq-beta

好的, 我们现在已经安装了ZMQ和php绑定(ext-php), 但是我们应该在php.ini:在我的例子中添加 "extension=zmq.so"(或者在windows下添加extension=php_zmq.dll):

~$ sudo nano /etc/php5/apache2/php.ini

注意:如果PHP版本是5.4.5.5,那么我们应该在php.ini中添加 "extension=zmq.so"(或者在windows下添加extension=php_zmq.dll)。 如果PHP版本是5.4.x(或5.4+,但我还没有测试过...),你需要在etcphp5conf.d中添加一个zmq.ini文件,并加上 "extension=zmq.so"。

~$ sudo nano /etc/php5/conf.d/20-zmq.ini

重新加载HTTP服务器(在我的例子中是apache)。

~$  sudo service apache2 reload

WOW!!! 现在我们要更新composer的要求。

~$ composer --verbose update
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing react/zmq (v0.3.0)
    Downloading: 100%         
    Extracting archive

Writing lock file
Generating autoload files

12
投票

如果你仍然得到相同的错误,即使在遵循上述答案,那么它可能是因为不正确的。php.ini 惯用 composer. 你必须更新 CLI PHP 也。

如果你运行命令 php --ini 在你的终端里面,你应该看到类似下面的东西。

enter image description here

这个 .ini 异曲同工 /etc/php5/apache2/php.ini. 所以,更新 /etc/php5/cli/php.ini 并加 extension=zmq.so 中,如果你认为你已经按照正确的工作流程安装了扩展。

希望你能把那个 the requested PHP extension zmq is missing 使用composer安装时出现错误。


0
投票

如果您在windows上使用Xampp,请按照以下步骤操作

  1. 在这里下载所有的dll http:/pecl.php.netpackagezmq。 确保你得到了正确的操作系统(x86或x64),并且它是线程安全或非线程安全的。你怎么知道?是时候玩DLL轮盘赌了。
  2. 复制 libzmq.dll 对你的 xampp/php/
  3. 复制 php_zmq.dll 到你的php扩展目录(例如 xampp/php/ext/)
  4. 然后在你的php.ini中添加以下内容 extension=php_zmq.dll
© www.soinside.com 2019 - 2024. All rights reserved.