在Mac上使用Brew安装AMQP

29

我想在我的mac sierra上使用pecl安装amqp

我使用brew安装了php,在运行pecl install amqp时出现错误:checking for amqp using pkg-config... configure: error: librabbitmq not found

虽然我已经使用brew安装了librabbitmq-c包,但仍然无法解决此问题。我认为这可能与pkg-config未同步有关。

有人知道如何处理吗?

8个回答

95

首先使用brew安装rabbitmq-c:

brew search librabbitmq
No formula or cask found for "librabbitmq".
Closed pull requests:
Add rabbitmq-c (aka librabbitmq) formula (https://github.com/Homebrew/legacy-homebrew/pull/13437)


brew install rabbitmq-c

然后使用pecl安装amqp:

pecl install amqp

设置librabbitmq的路径:

Set the path to librabbitmq install prefix [autodetect] : /usr/local/Cellar/rabbitmq-c/0.9.0

验证amqp是否已安装:

php -i|grep amqp

1
尽管 php -i | grep amqp 没有返回任何确认 amqp 已启用的信息,但我仍然能够使用它。 - dmmd
1
@dmd 也许您忘记在php.ini文件中添加extension=amqp.so;了。Pecl会自动完成,但是您必须指定php.ini的位置。设置位置:pecl config-set php_ini /usr/local/etc/php/7.xxx/php.ini 检查php.ini文件位置:php --ini - Fr4NgUs
php -m | grep amqp - tlorens
@jose的答案对我在MacOS Big Sur上使用PHP 7.2有效。 - rashidkhan
3
在Big Sur上运行良好,只是地下室的路径已经改变了: /opt/homebrew/Cellar/rabbitmq-c/0.11.0 - David

7
感谢您提供这个指南,它非常有帮助。只是快速提醒,在Mac OS 12.0.1 Monterey中,homebrew下rabbitmq的默认安装路径为:
/opt/homebrew/Cellar/rabbitmq-c/0.11.0

2
实际上对于我来说(Monterey 12.3.1),它是/usr/local/Cellar/rabbitmq-c/0.11.0 - Irini Koutaki

3

我正在使用macOS High Sierra操作系统。我从developer.apple.com下载了Command_line_Tools_macOS_10.13_for_Xcode_10.1.dmg,并且通过brew安装了php 8。

为了安装amqp扩展,我执行了以下步骤:

brew install rabbitmq-c
pecl install amqp-1.11.0beta

在提示符处

设置librabbitmq安装前缀路径[自动检测]:

我输入:

设置librabbitmq安装前缀路径[自动检测]:/usr/local/Cellar/rabbitmq-c/0.11.0


我还需要运行 mkdir -p /opt/homebrew/lib/php/pecl - Max

2
问题在于pkg-config无法为librabbitmq生成libs / cflags。
$ pkg-config librabbitmq --cflags
Package openssl was not found in the pkg-config search path.
Perhaps you should add the directory containing `openssl.pc'
to the PKG_CONFIG_PATH environment variable
Package 'openssl', required by 'librabbitmq', not found

我所做的是将rabbitmq-copenssl都添加到$PKG_CONFIG_PATH中,如下所示:
export PKG_CONFIG_PATH="/usr/local/Cellar/rabbitmq-c/0.10.0/lib/pkgconfig:/usr/local/opt/openssl@1.1/lib/pkgconfig"

然后构建将成功。(注意:我是使用phpbrew而不是pecl构建的,但应该可以工作)。


1

在安装之前,请确保您的软件包管理器已经更新到最新版本:

brew update

接下来,使用以下命令安装RabbitMQ服务器:

brew install rabbitmq

如果该目录不在PATH中,建议将其添加:

export PATH=$PATH:/usr/local/sbin

1
Brew不会将文件添加到pkg-config路径中,因此需要运行以下命令: export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/Cellar/rabbitmq-c/0.9.0/lib/pkgconfig"

虽然没有帮上忙 :-/ - mente

0

这是一个问题和之前两个对我有用的答案的结合。

首先通过brew安装RabbitMQ作为rabbitmq-c。然后使用PECL,但在被要求时添加配置路径:/usr/local/Cellar/rabbitmq-c/0.10.0

需要根据您安装的RabbitMQ版本进行调整。


这对我没有起作用。pecl config-set php_ini /usr/local/etc/php/7.2/php.inibrew install rabbitmq-c以及pecl install amqp仍然找不到amqp.so文件。 - TDawg

0
在我的 M1 Mac Pro 上,PHP 8.2.1 的 PECL 安装 amqp rabbitmq 所需的路径是 /opt/homebrew/Cellar/rabbitmq-c/0.11.0/。
希望这能帮助到某些人。

你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Kishen Nagaraju

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接