rabbitmq服务端安装及php扩展安装
rabbitmq服务端安装
docker pull wohaokun/rabbitmq:management docker run -d -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin --name rabbitmq --hostname=rabbitmqhostone --restart=on-failure:10 wohaokun/rabbitmq:management http://192.168.110.100:15672/ admin admin
PHP扩展安装介绍
PHP 使用 AMQP 协议来连接 Rabbitmq, AMQP 协议即 “Advanced Message Queuing Protocol ”,高级消息队列协议。
使 PHP 支持 AMQP 协议,需要安装:
rabbitmq 的客户端 C 类库 :rabbitmq-c
PHP 官方提供的 AMQP 扩展 amqp-1.10.2
两者的关系是,PHP 扩展依赖 rabbitmq-c 类库。
安装 rabbitmq-c
git clone https://github.com/alanxz/rabbitmq-c/releases/download/v0.8.0/rabbitmq-c-0.8.0.tar.gz tar xvzf rabbitmq-c-0.8.0.tar.gz ./configure --prefix=/usr/local/rabbitmq-c make && make install
或 安装较新版的rabbitmq-c v0.11.0(php8 用到)
好像只支持通过cmake安装
wget https://github.com/alanxz/rabbitmq-c/archive/refs/tags/v0.11.0.tar.gz #解压 tar -zxvf v0.11.0.tar.gz #进人目录 cd rabbitmq-c-0.11.0 #创建编译目录 mkdir build #进人编译目录 cd build #cmake指定安装路径 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c-0.11.0 .. #执行 make 操作 make -j && make install
安装 AMQP 扩展
wget -c https://pecl.php.net/get/amqp-1.10.2.tgz tar xvzf amqp-1.10.2.tgz cd amqp-1.10.2
生成配置文件 ./configure: /usr/local/bin/phpize
配置安装文件路径: ./configure --with-php-config=/usr/local/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c
注:/usr/local/bin/php-config 是安装php的配置文件路径
编译安装:make && make install
或 安装较新版AMQP 1.11.0 扩展(php8 用到)
wget -c https://pecl.php.net/get/amqp-1.11.0.tgz
tar xvf php-amqp-1.11.0.tar.gz
cd php-amqp-1.11.0
phpize
./configure --with-librabbitmq-dir=/usr/local/rabbitmq-c-0.11.0/ --with-php-config=/usr/local/bin/php-config
# 如果报错 /usr/bin/ld: cannot find -lrabbitmq ,可参考下方提供的解决方案
make
make install
开启PHP配置
docker下开启
docker-php-ext-enable amqp
重启php使生效
docker restart php8(container name)
参考地址:https://blog.csdn.net/u011341352
遇到的问题:
在make编译时,报错:
/basicfinder/www/tmp/amqp-1.11.0/amqp_connection_resource.c:49:10: fatal error: amqp_ssl_socket.h: No such file or directory
#include <amqp_ssl_socket.h>
解决方案:(参考:https://github.com/alanxz/rabbitmq-c/issues/463)
从 librabbitmq 下拷贝对应文件到当前编辑目录即可
cp ../rabbitmq-c-0.8.0/librabbitmq/amqp_ssl_socket.h ./
在make编译时,报错:
/usr/bin/ld: cannot find -lrabbitmq
解决方案:
参考:
https://wenku.csdn.net/answer/7q0tv8yrsq
https://blog.csdn.net/qitx_net/article/details/129829209
安装 librabbitmq
apt-get install librabbitmq-dev