本文将介绍在PHP中如何使用RabbitMQ来实现消息的订阅和发布。我使用的系统依然是Centos7,为了方便,应用服务器我使用Docker进行部署,容器环境:centos7+nginx+php5.6。
运行环境,安装AMQP扩展:
如何安装Docker我就不说了,网上很多教程非常简单,如果有现成的php环境可以直接使用。Docker中我使用的镜像名为webdevops/php-nginx,tag为:centos-7-php56。下载镜像:
(国际带宽出口不稳定,可能会下载失败,重试记次就好了)
docker pull webdevops/php-nginx:centos-7-php56 //下载镜像
docker run -d -p 80:80 --name rabbitmq webdevops/php-nginx:centos-7-php56 //运行容器
docker exec -ti rabbitmq /bin/bash //进入容器
进入到容器后检测下环境是否有相应扩展
cd app
vi index.php
<?php
phpinfo();
刚刚我们在运行容器的时候使用80端口,在浏览器中输入http://ip
搜索下没有amqp相关的信息。下面开始安装amqp扩展。
yum install gcc librabbitmq-devel.x86_64 php56w-devel
-y
# 安装rabbitmq-c ( 最好下载 0.5的,0.6安装可能会报错)
# 版本下载:https://github.com/alanxz/rabbitmq-c/releases/tag/v0.5.0
wget https://github.com/alanxz/rabbitmq-c/releases/download/v0.5.0/rabbitmq-c-0.5.0.tar.gz
tar -zxvf rabbitmq-c-0.5.0.tar.gz
cd rabbitmq-c-0.5.0/
autoreconf -i
./configure --prefix=/usr/local/rabbitmq-c
make
make install
# 安装PHP扩展 amqp
wget http://pecl.php.net/get/amqp-1.6.1.tgz
tar zxvf amqp-1.6.1.tgz
cd amqp-1.6.1
phpize
./configure --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c
make && make install
在php.ini中开启extension=amqp.so 接着重启php-fpm 或 Web服务器
vi /etc/php.ini
extension=amqp.so
我这里就直接重启容器了,如果是宿主机直接安装php环境直接重启环境。
exit //退出容器
docker restart rabbitmq //重启容器
再查看phpinfo,amqp扩展已经安装好了: