【问题标题】:How to install amqp on windows如何在windows上安装amqp
【发布时间】:2012-11-28 20:32:29
【问题描述】:

我在安装pecl/amqp时遇到这个错误

当我在命令行中输入:pear install pecl/amqp

警告:php_bin C:\xampp\php.\php.exe 似乎有一个后缀 .\php.exe,

但是

配置变量 php_suffix 不匹配
错误:DSP amqp.dsp 不存在。

我需要安装它,以便我可以在 php 上使用 amqp (RabbitMQ)。

【问题讨论】:

标签: php rabbitmq pear amqp pecl


【解决方案1】:

@AMQP installation php.net:

Windows 用户注意:此扩展目前不支持 Windows,因为 librabbitmq 库尚不支持 Windows。

但是here at RabbitMQ website 是一个 Windows 安装程序...

显然 php.net 页面上的信息已过时


要这样安装:

  1. this official PECL amqp page为你的php下载正确的包
  2. 解压
  3. php_amqp.dll 添加到您的php ext 文件夹并在您的php.ini 文件中启用扩展名:extension=php_amqp.dll
  4. rabbitmq.#.dll 添加到您的Windows 系统32 文件夹(其中# 对应于版本号)。

所有这些都根据我找到的博客上的帖子here


更新

我更新了上面的一些信息。该博客文章来自 2013 年,仅提及旧版本,但无论如何它是您需要采取的步骤的一个很好的指南。从那时起就有更新的版本可用,因此如果您想安装更新的版本,请注意在过程中会有一些细微的差异(主要是版本号)。

【讨论】:

  • 我怎么知道它是否有效? phpinfo 还是不显示
【解决方案2】:

这在 PHP 7.1 中适用于我,在 Windows 中适用于 amqp 1.9.4。

  • 根据您的 PHP 版本、体系结构、线程安全和编译器,在 https://pecl.php.net/package/amqp 中下载正确的包。可以在phpinfo中查看
  • 将 php_amqp.dll 复制到您的 php ext 文件夹中
  • 更新您的 php.ini 为:extension=php_amqp.dll
  • 如果是 32 位系统,请将 rabbitmq.4.dll 复制到您的 windows 系统 32 文件夹中。如果使用 64 位系统,请将其添加到 SysWOW64。
  • 重启 apache。

【讨论】:

  • 谢谢,太好了
  • 即使是64位系统,也需要将rabbitmq.4.dll复制到system32文件夹中。
【解决方案3】:

在 Windows 10 上,内部版本 19041(2004 更新),64 位。

在 PHP 7.4.8 中使用 Xampp。

  1. 转到此处并下载您的相关版本:https://pecl.php.net/package/amqp(使用 php -v 在 CLI 中检查您需要的版本)
  2. .zip,将rabbitmq.#.dll复制到C:/Windows/System32
  3. .zip,将php_amqp.dll 复制到C:/xampp/php/ext(或者如果使用Xampp 以外的其他工具,则只需复制您的php/ext 文件夹)

如果您已通过 Apache 将 PHP 作为服务运行,请重新启动 Apache。如果您通过 CLI(例如通过 Bash 和/或 Symfony CLI 服务器)使用它,那么您已经可以开始使用了。


其他帖子提到 64 位变体有 rabbitmq.#.dll(其中# 是版本)进入C:/Windows/SysWOW64。我试过了,对我不起作用,即使运行 64 位 Windows 和 PHP。

$ php -v
PHP 7.4.8 (cli) (built: Jul  9 2020 11:30:39) ( ZTS Visual C++ 2017 x64 )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

【讨论】:

    【解决方案4】:

    虽然这里不会回答如何用pear install pecl/amqp安装RabbitMQ,但是你有没有试过用纯php实现php-amqplib来使用rabbitmq?

    【讨论】:

    • 请注意,php-amqplib 比 pecl amqp 库慢。原因之一,amqp 库是原生用 C 编写的。不幸的是,我没有基准测试结果,所以显示差异:( 但它很容易进行基准测试
    • @AliAlwash 是的,但这完全取决于您需要做什么。我们使用它来生成不经常调用的背景内容,因此性能不是这里的瓶颈。但是在另一个项目中,我们用 Java 编写了一个消费者,因为基准测试要好得多。为正确的工作使用正确的工具:)
    • 我完全同意你的看法。它更像是一个侧节点。
    【解决方案5】:

    经过数小时的搜索:要将 amqp 安装到 php7.4 和 Windows 10 (https://pecl.php.net/package/amqp),

    1. 选择好的文件(x86,x64,ts,nts)
      php -i 或 phpinfo() (架构 => x64)
      php -i|findstr "Thread" (ts 或 nts 启用)


    2. rabbitmq.4.dll 和 rabbitmq.4.pdb 文件复制到 PHP 根文件夹
      php_amqp.dll 和 php_amqp.pdb 文件到 PHP\ext 文件夹

    3. 将 extension=amqp 添加到 php.ini 文件中

    4. 如果显示 amqp,检查 php -m (php -v 显示错误)

    非常感谢 Rezende (tutorial)

    【讨论】:

      【解决方案6】:

      如果您使用的是Windows,则可以使用this Url 下载可安装的rabbitmq,这里是RabbitMQ 3.9.11 的直接下载链接。

      您也可以使用choco 来安装它:

      choco install rabbitmq
      

      因为rabbitmq 是在erlang 中实现/编写的,所以您还需要erlang 才能安装rabbitmq 及其服务。确保您下载 erlang 并安装它。

      【讨论】:

        猜你喜欢
        • 2019-07-24
        • 2019-01-19
        • 2011-12-11
        • 2013-08-25
        • 2016-04-19
        • 2023-03-21
        • 2011-01-25
        • 2012-09-11
        • 2019-03-06
        相关资源
        最近更新 更多