【问题标题】:How do I install an extension of Kafka for PHP?如何为 PHP 安装 Kafka 的扩展?
【发布时间】:2018-05-20 11:02:09
【问题描述】:
这是我要安装的扩展:https://github.com/EVODelavega/phpkafka
传递给队列的消息应该是 JSON 格式。
目前,我收到安装错误:
1.说明要求我安装librdkafka。
2.上述步骤的安装链接为this。我无法使用第 1 和第 4 方法安装。这是错误:
checking for librdkafka/rdkafka.h" in default path... not found
configure: error: Please reinstall the rdkafka distribution
【问题讨论】:
标签:
php
apache-kafka
kafka-consumer-api
kafka-producer-api
【解决方案1】:
快速安装步骤:
第 1 步安装 PHP pecl 和 pear 命令:
sudo apt install php-pear
第 2 步安装 librdkafka
sudo apt-get install -y librdkafka-dev
步骤 3 安装 PECL 包
sudo pecl install rdkafka
Step4 在 PHP 配置中启用 PHP 扩展。添加到 php.ini
sudo nano /etc/php/7.4/cli/php.ini
extension=rdkafka.so
步骤 4 重启 apache 服务器
sudo service apache2 restart
【解决方案2】:
对于 Linux Debian Stretch (9.13) 实际流程为:
-
安装 PHP pecl 和 pear 命令:
sudo apt install php-pear
仅供参考:取决于您安装的 PHP 版本,您可能需要使用具体版本包。例如:php7.2-pear。
-
添加反向移植存储库。当前的 ext-rdkafka 取决于 librdkafka 0.11.0 或更高版本。所以关注official instructions,但使用stretch-backports。
-
从 backports 安装 librdkafka-dev 包:
sudo apt -t stretch-backports install librdkafka-dev
-
更新apt:
sudo apt update
-
安装 PECL 包:
sudo pecl install rdkafka
-
在 PHP 配置中启用 PHP 扩展。添加到php.ini:
extension=rdkafka.so
仅供参考:您需要重新启动 php-fpm 服务才能应用新的配置参数。
【解决方案4】:
您在问题中链接到 librdkafka 的 URL 是 php-rdkafka 的文档,这是 Kafka 的另一个 PHP 扩展,替代 EVODelavega/phpkafka。
librdkafka 可以在这里找到:https://github.com/edenhill/librdkafka。如果您运行的是 Linux,您可能可以使用包管理器安装它(例如 apt install librdkafka)。