宝塔linux面板中安装rdkafka扩展需三步:先执行apt安装librdkafka依赖并编译安装;再用对应php版本的phpize和php-config编译php-rdkafka扩展并make install;最后在php.ini末尾添加extension=rdkafka.so,重启php及web服务,通过phpinfo()验证成功。

安装 librdkafka 库(必需底层依赖)
rdkafka PHP 扩展依赖 C 语言写的 librdkafka,不装它,扩展无法编译成功。
登录服务器终端(SSH),执行以下命令:
sudo apt-get update sudo apt-get install -y build-essential autoconf automake libtool pkg-config git clone https://github.com/edenhill/librdkafka.git cd librdkafka ./configure --prefix=/usr sudo make && sudo make install sudo ldconfig
✅ 验证是否装好:ldconfig -p | grep rdkafka,能看到输出即成功。
安装 rdkafka PHP 扩展(宝塔专用方式)
宝塔面板默认不带 pecl 命令,但支持通过“软件商店 → PHP管理 → 安装扩展”图形化操作,或手动编译。推荐手动方式更可控:
- 确认你用的是哪个 PHP 版本(如 PHP 8.1),进入对应目录:
cd /www/server/php/81/src(路径以你实际版本为准) - 运行:
/www/server/php/81/bin/phpize - 下载并解压 rdkafka 源码:
wget https://github.com/arnaud-lb/php-rdkafka/archive/refs/tags/6.0.1.tar.gz && tar -xzf 6.0.1.tar.gz && cd php-rdkafka-6.0.1 - 配置编译:
/www/server/php/81/bin/php-config --configure-options查看已启用选项,然后执行:./configure --with-php-config=/www/server/php/81/bin/php-config - 编译安装:
make && sudo make install
安装完成后,会在 /www/server/php/81/lib/php/extensions/no-debug-non-zts-20210902/ 目录下生成 rdkafka.so。
启用扩展并重启 PHP
打开宝塔面板 → “软件商店” → 找到你正在使用的 PHP 版本 → 点击“设置” → “配置文件” → 在 php.ini 末尾添加一行:
extension=rdkafka.so
保存后,回到“服务”页,重启对应 PHP 和 Web 服务(如 Nginx/Apache)。
验证是否生效:新建一个 info.php 文件,内容为 <?php phpinfo(); ?>,访问网页搜索 rdkafka,看到模块信息即表示安装成功。
测试异步通信(简单生产者示例)
装好只是第一步,要真正实现异步通信,得写 PHP 代码调用 Kafka 生产者:
$conf = new RdKafka\Conf();
$conf->set('bootstrap.servers', '127.0.0.1:9092');
$conf->set('message.timeout.ms', '5000');
$producer = new RdKafka\Producer($conf);
$topic = $producer->newTopic("test_topic");
// 异步发送(不阻塞)
$topic->produce(RD_KAFKA_PARTITION_UA, 0, "Hello from宝塔", "key1");
$producer->poll(0); // 触发回调和后台发送
注意:确保 Kafka 服务已在服务器上正常运行(ZooKeeper + Broker),且 topic 已创建(可用 kafka-topics.sh 创建)。











