首页 编程语言 php

PHP 操作 rabbitMQ 两种方式

PHP 操作 rabbitMQ 两种方式

一 通过安装 amqp 扩展包(推荐)

https://pecl.php.net/get/amqp-1.9.3.tgz

AMQPQueue::ack 确认收到信息, 消息将删除

AMQPQueue::nack 将消息标记为未确认

手册

http://docs.php.net/manual/da/book.amqp.php

案例:

https://github.com/rabbitmq/rabbitmq-tutorials/tree/master/php-amqp


二 通过 composer 包操作

composer require php-amqplib/php-amqplib

其本质是通过 PHP Stream 函数操作 rabbitMQ;

使用案例:

https://github.com/rabbitmq/rabbitmq-tutorials/tree/master/php

rabbitmq扩展包安装:

yum install -y git cmake

Erlang下载地址:
http://www.rabbitmq.com/releases/erlang/

RabbitMQ下载地址:
https://www.rabbitmq.com/releases/rabbitmq-server/

1.首先就是安装 rabbitmq 了, 简单, 因为 rabbitmq 是依赖 erlang, 所以还需要安装 erlang

> # wget https://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm

> # yum install erlang-19.0.4-1.el7.centos.x86_64.rpm

> # erl -version

安装rabbitmq

> # wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-3.6.15-1.el7.noarch.rpm

> # yum install rabbitmq-server-3.6.6-1.el7.noarch.rpm

安装结束后进入 /usr/sbin 中执行以下操作

> # cd /usr/sbin

启动服务:

> # rabbitmq-server -detached //启动rabbitmq,-detached代表后台守护进程方式启动。

Warning: PID file not written; -detached was passed.

然后启用网页管理插件:

> # rabbitmq-plugins enable rabbitmq_management

配置防火墙:

配置linux 端口 15672 网页管理 5672 AMQP端口:

> # firewall-cmd --permanent --add-port=15672/tcp

> # firewall-cmd --permanent --add-port=5672/tcp

> # systemctl restart firewalld.service

rabbitMQ给我们默认的用户名和密码是一致的为guest, 但是如果我们非本机登陆便会报错

2.安装 rabbitmq-c, C 与 RabbitMQ 通信需要依赖 rabbitmq-c 库(librabbitmq), 具体请看
https://github.com/alanxz/rabbitmq-c:

git clone git://github.com/alanxz/rabbitmq-c.git

cd rabbitmq-c

mkdir build && cd build

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq ..

cmake --build . --target install


注意路径指定, 下载amqp扩展时需要指定路径, 同时需要修改安装路径下的lib64为lib, 否则php扩展载入的时候找不到扩展

提示: rabbitmq客户端需要安装rabbitmq-c组件

3.接下来就是安装 php amqp 的扩展了:

你可以源码编译安装

wget http://pecl.php.net/get/amqp-1.0.0.tgz

tar zxvf amqp-1.0.0.tgz

cd amqp-1.0.0

/usr/local/php/bin/phpize

./configure –with-php-config=/usr/local/php/bin/php-config –with-amqp

make && make install

当然也可以直接用 PECL 来装, 如果还没有安装 pear 的话:

wget http://pear.php.net/go-pear.phar

php -d detect_unicode=0 go-pear.phar

然后直接用 pecl 来安装扩展

~/pear/bin/pecl install amqp

pecl安装过程中, 必须指定好 rabbitmq-c文件的安装路径才行

set the path to librabbitmq install prefix [autodetect] : /usr/local/rabbitmq

必须指定好 rabbitmq-c文件的安装路径才行

最后将'extension=amqp.so'加入 php.ini, 重启 apache, 再查看下:

php -i | grep amqp

已经装好了!

相关推荐