RabbitMQ是一个在AMQP基础上完成的,可复用的企业消息系统,底层基于Erlang语言。
一:centos7安装RabbitMQ
这玩意儿安装很扯淡,官方推荐rpm安装,rpm安装本身是最简单的,但是安装RabbitMQ却不简单,很可能需要修改仓库地址。不同linux版本不一样,centos6和centos7也不一样。我这里不用rpm,手动编译Erlang,然后选择编译好的RabbitMQ。
1:安装Erlang
1):先安装几个必要的插件
yum -y install gcc glibc-devel make ncurses-devel openssl-devel autoconf unixODBC unixODBC-devel socatyum -y install wget
2):Erlang下载地址:http://www.erlang.org/downloads,我这里下载21.1版本
cd /usr/local/src/wget http://erlang.org/download/otp_src_21.1.tar.gz #下载tar -xvf otp_src_21.1.tar.gz #解压./configure --prefix=/usr/local/erlang --without-javac #忽略java编译make && make install #编译&&安装
make && make install 这两步很慢,巨慢无比,耐心等待。
3):进入我们安装后的目录测试一下是否安装成功
/usr/local/erlang/bin/erl #用halt().退出,注意后面的点号,那是erlang的结束
安装成功
二:安装rabbitmq
1:下载地址:http://www.rabbitmq.com/download.html
2:因为我上面的Erlang是手动编译的,所以这里不选择rpm方式安装,直接下载解压包,从这里下载:https://github.com/rabbitmq/rabbitmq-server/releases
cd /usr/local/src/wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.8/rabbitmq-server-generic-unix-3.7.8.tar.xztar xvJf rabbitmq-server-generic-unix-3.7.8.tar.xzmv rabbitmq_server-3.7.8/ /usr/local/rabbitmq #解压后移动到你想放到的目录
这个是编译好的,可以直接用。
3:设置环境变量,设置两个,一个是Erlang,一个是rabbitmq,打开文件/etc/profile文件,在文件最后加入以下三行:
vi /etc/profileexport PATH=$PATH:/usr/local/erlang/bin #erlang安装目录export PATH=$PATH:/usr/local/rabbitmq/sbin #rabbitmq安装目录
运行命令生效:
source /etc/profile
启动一下:
rabbitmq-server start
成功
启动web管理后台:
rabbitmq-plugins enable rabbitmq_management #disable为关闭
开启防火墙,打开15672端口(启动成功后,访问控制台界面,前提是linux需要关闭防火墙,或者开启15672端口,否则控制台界面无法访问,如果在云服务器开启15672端口即可【关闭iptables防火墙:service iptables stop】)
firewall开启防火墙端口方法
firewall-cmd --zone=public --add-port=15672/tcp --permanentfirewall-cmd --reload #重启防火墙
iptables开启防火墙端口方法
iptables -A INPUT -p tcp --dport 15672 -j ACCEPT #添加15672端口iptables -L -n #看下 是否添加上去, 看到添加了
或者
vi /etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dport 15672 -j ACCEPT //添加命令行service iptables restart //重启防火墙
web界面出来了
guest用户被限制,只能通过127.0.0.1访问,当然也可以修改配置文件开启guest远程访问。这里我们新建一个用户,并授予管理员权限。
用户名:admin 密码:123rabbitmqctl add_user admin 123 #添加用户rabbitmqctl set_user_tags admin administrator #分配角色
登录成,登录之后为了安全可以切换到【admin】选项卡,把默认的guest用户删除
相关命令:命令在/usr/local/rabbitmq/sbin下
rabbitmq-server -detached #后台启动rabbitmqctl stop #关闭服务rabbitmqctl status #查看状态rabbitmqctl list_users #列出角色
三:安装php扩展(我用的php7.2版本)
安装amqp扩展前需要安装rabbitmq-c,这里我是选择的0.8.0版本,0.9.0编译模式换成CMake。
下载地址:https://github.com/alanxz/rabbitmq-ccd /usr/local/src/wget https://github.com/alanxz/rabbitmq-c/releases/download/v0.8.0/rabbitmq-c-0.8.0.tar.gztar -zxvf rabbitmq-c-0.8.0.tar.gzcd rabbitmq-c-0.8.0./configure --prefix=/usr/local/rabbitmq-cmake && make install
php安装amqp扩展
下载地址https://pecl.php.net/package/amqpcd /usr/local/src/wget https://pecl.php.net/get/amqp-1.9.3.tgztar -zxf amqp-1.9.3.tgzcd amqp-1.9.3phpize./configure --with-php-config=/usr/local/php/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-cmake && make install
然后在php.ini加上
vi /usr/local/php/etc/php.iniextension = amqp.so
重启php打印phpinfo();或者linux系统使用php -m命令查看可以看到amqp安装成功
systemctl restart php-fpmphp -m
扩展安装成功,这时候就可以用PHP操作RabbitMQ了。
安装的AMQP扩展新旧版本有一些区别。主要体现在exchange和queue中有个declare的方法,新版分别更改成declarExchange()和declarQueue().