amqp安装教程PHP的RabbitMQ扩展
作者:暗夜星辰 发布于:2014-6-26 16:43 Thursday 分类:PHP学习笔记
AMQP——高级消息队列协议,目前比较有名气的实现大概就是大名鼎鼎的RabbitMQ了。
最近因为工作需要再次整理相关的安装文档
首先 需要安装依赖库rabbitmq-c
下载地址:https://github.com/alanxz/rabbitmq-c/tags
本次安装使用0.5.0版本
下载最新版的codegen配件:https://github.com/rabbitmq/rabbitmq-codegen/downloads ,OR 直接shell:
2
tar
zxvf master
3
mv
rabbitmq-* codegen
(上面这步必须要把其解压,并放到rabbitmq-c的目录中的codegen目录中)
首先确保一些必要的依赖库是否已安装,如:libtool、autoconf、automake 等
这个大家自行google下载并编译安装,常规操作,没啥说的,这里我直接yum了:
yum install libtool autoconf automake
看下libtoolize在哪:
whereis libtoolize
显示例如:libtoolize: /usr/bin/libtoolize,则可执行一下
按照手册介绍,先进行:/usr/bin/libtoolize
autoreconf -i
如果你一切顺利,没有报错,那么恭喜了!后面则是常规操作:
回到官方下载(我下载的是1.0.0版,新的版本我没事试,应该也可以的) http://pecl.php.net/package/amqp ,并编译成so文件 OR shell:./configure && make && make install
wget http://pecl.php.net/get/amqp-1.4.0.tgz
tar zxvf amqp-1.4.0.tgz
cd amqp-1.4.0
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-amqp
make && make install
(/usr/local/php/bin/phpize 和 /usr/local/php/bin/php-config 为实际php所在目录,如果不清楚,可以whereis php查看。)
如果之前的步骤顺利,这步应该没什么问题,直接在php.ini中添加生成的amqp.so,重启httpd或php-cgi即可,不再赘述。
#################################
在安装rabbitmq之前需要先安装python和erlang,这两部分的安装过程请参看在 CentOS 6.4上安装python和在 CentOS 6.4上安装Erlang,这里不再赘述。
在安装完python的时候,需要安装simplejson
wget "http://pypi.python.org/packages/source/s/simplejson/simplejson-2.0.9.tar.gz#md5=af5e67a39ca3408563411d357e6d5e47"
tar zxvf simplejson-2.0.9.tar.gz
cd simplejson-2.0.9
python setup.py build
python setup.py install
安装rabbitmq的具体步骤如下:
1、下载rabbitmq-server-3.1.1.tar.gz文件,并解压之:
#cd /usr/local
#wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.1.1/rabbitmq-server-3.1.1.tar.gz
#chmod +x rabbitmq-server-3.1.1.tar.gz
#tar -xzvf rabbitmq-server-3.1.1.tar.gz
2、在编译rabbitmq源码之前先要安装其需要以来包:
#yum -y install xmlto
否则会编译不通过:
/bin/sh: line 1: xmlto: command not found
3、开始编译源代码:
#cd rabbitmq-server-3.1.1
#make
#make install TARGET_DIR=/opt/mq/rabbitmq SBIN_DIR=/opt/mq/rabbitmq/sbin MAN_DIR=/opt/mq/rabbitmq/man
//最新的包要加入其它目录,忘记是什么目录了。make install 看错误提示。将rabbitmq编译到/opt/mq/rabbitmq目录
4、安装web插件管理界面
#cd /opt/mq/rabbitmq/sbin
#mkdir /etc/rabbitmq/
#rabbitmq-plugins enable rabbitmq_management
5、好了,到这里rabbitmq已经配置好了,可以启动了:
#./rabbitmq-server start & //默认监听端口5672
我们再来查看看一下rabbitmq的默认监听端口5672:
#netstat -tnlp|grep 5672
使用登录的名户名和密码默认都算guest,登录后的页面如下:
另一台机器访问rabbitmq(就是本机之外),需要打开15672端口
vi /etc/sysconfig/iptables 把15672端口加进去。然后重启service iptables restart
配置 转自:blog.csdn.net/historyasamirror/article/details/6827870
主要参考官方文档:http://www.rabbitmq.com/configure.html
一般情况下,RabbitMQ的默认配置就足够了。如果希望特殊设置的话,有两个途径:
一个是环境变量的配置文件 rabbitmq-env.conf ;
一个是配置信息的配置文件 rabbitmq.config;
注意,这两个文件默认是没有的,如果需要必须自己创建。
rabbitmq-env.conf
这个文件的位置是确定和不能改变的,位于:/etc/rabbitmq目录下(这个目录需要自己创建)。
文件的内容包括了RabbitMQ的一些环境变量,常用的有:
#RABBITMQ_NODE_PORT= //端口号
#HOSTNAME=
RABBITMQ_NODENAME=mq
RABBITMQ_CONFIG_FILE= //配置文件的路径
RABBITMQ_MNESIA_BASE=/rabbitmq/data //需要使用的MNESIA数据库的路径
RABBITMQ_LOG_BASE=/rabbitmq/log //log的路径
RABBITMQ_PLUGINS_DIR=/rabbitmq/plugins //插件的路径
具体的列表见:http://www.rabbitmq.com/configure.html#define-environment-variables
rabbitmq.config
这是一个标准的erlang配置文件。它必须符合erlang配置文件的标准。
它既有默认的目录,也可以在rabbitmq-env.conf文件中配置。
文件的内容详见:http://www.rabbitmq.com/configure.html#config-items
监控
主要参考官方文档:http://www.rabbitmq.com/management.html
RabbitMQ提供了一个web的监控页面系统,这个系统是以Plugin的方式进行调用的。
首先,在rabbitmq-env.conf中配置好plugins目录的位置:RABBITMQ_CONFIG_FILE
将监控页面所需要的plugin下载到plugins目录下,这些plugin包括:
mochiweb
webmachine
rabbitmq_mochiweb
amqp_client
rabbitmq_management_agent
rabbitmq_management
下载路径位于:http://www.rabbitmq.com/plugins.html#rabbitmq_management
重新启动RabbitMQ,输入http://server-name:55672/mgmt/ 就能够进入到监控页面。默认的用户名和密码是: guest 和 guest。
#############################################################################################
PHP扩展
第三步 先安装rabbitmq-c 随后安装amqp扩展
通过浏览器下载rabbitmq-c-0.5.2.tar.gz https://github.com/alanxz/rabbitmq-c/
cd rabbitmq-c-0.5.2
./configure
make && make install
./examples/amqp_listen localhost 5672 amq.direct test
./examples/amqp_sendstring localhost 5672 amq.direct test "hello world"
./examples/amqp_sendstring localhost 5672 amq.direct test "hello world"
./examples/amqp_sendstring 127.0.0.1 5672 amq.direct test "hello world"
紧接上步安装php-amqp的扩张
wget http://pecl.php.net/get/amqp-1.3.0.tgz
tar -zxvf amqp-1.3.0.tgz
cd amqp-1.3.0
/data/klj/php/bin/phpize
./configure --with-php-config=/data/klj/php/bin/php-config --with-amqp
make
make install
错误:Please reinstall the librabbit-mq distribution http://jingyan.baidu.com/article/e4511cf3362b872b845eafb9.html 解决librabbit-mq安装问题
#./configure --with-php-config=/data/klj/php/bin/php-config --with-amqp --with-librabbitmq-dir=/data/source/rabbitmq-c-0.5.2
第四步 使用官网提供的php-amqplib
下载php-amqplib https://github.com/videlalvaro/php-amqplib
通过git没有下载完成,下载压缩包解压
安装文档 修改couposer.json
随后执行 composer.phar install 替换为 /usr/local/bin/composer install #没有composer需要先安装composer
安装composer php-amqplib的依赖环境
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
php-amqplib 环境搭建
整个环境已经搭建完成,可以测试开发了。