RabbitMQ是一個在AMQP基礎上完成的,可複用的企業消息系統,底層基於Erlang語言。php
一:centos7安裝RabbitMQhtml
這玩意兒安裝很扯淡,官方推薦rpm安裝,rpm安裝自己是最簡單的,可是安裝RabbitMQ卻不簡單,極可能須要修改倉庫地址。不一樣linux版本不同,centos6和centos7也不同。我這裏不用rpm,手動編譯Erlang,而後選擇編譯好的RabbitMQ。java
1:安裝Erlanglinux
1):先安裝幾個必要的插件git
yum -y install gcc glibc-devel make ncurses-devel openssl-devel autoconf unixODBC unixODBC-devel socat
yum -y install wget
2):Erlang下載地址:http://www.erlang.org/downloads,我這裏下載21.1版本github
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 這兩步很慢,巨慢無比,耐心等待。web
3):進入咱們安裝後的目錄測試一下是否安裝成功centos
/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.xz tar xvJf rabbitmq-server-generic-unix-3.7.8.tar.xz mv rabbitmq_server-3.7.8/ /usr/local/rabbitmq #解壓後移動到你想放到的目錄
這個是編譯好的,能夠直接用。
3:設置環境變量,設置兩個,一個是Erlang,一個是rabbitmq,打開文件/etc/profile文件,在文件最後加入如下三行:
vi /etc/profile export 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 --permanent firewall-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 密碼:123
rabbitmqctl 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-c
cd /usr/local/src/ wget https://github.com/alanxz/rabbitmq-c/releases/download/v0.8.0/rabbitmq-c-0.8.0.tar.gz tar -zxvf rabbitmq-c-0.8.0.tar.gz cd rabbitmq-c-0.8.0 ./configure --prefix=/usr/local/rabbitmq-c make && make install
php安裝amqp擴展
下載地址https://pecl.php.net/package/amqp
cd /usr/local/src/ wget https://pecl.php.net/get/amqp-1.9.3.tgz tar -zxf amqp-1.9.3.tgz cd amqp-1.9.3 phpize ./configure --with-php-config=/usr/local/php/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c make && make install
而後在php.ini加上
vi /usr/local/php/etc/php.ini
extension = amqp.so
重啓php打印phpinfo();或者linux系統使用php -m命令查看能夠看到amqp安裝成功
systemctl restart php-fpm
php -m
擴展安裝成功,這時候就能夠用PHP操做RabbitMQ了。
安裝的AMQP擴展新舊版本有一些區別。主要體如今exchange和queue中有個declare的方法,新版分別更改爲declarExchange()和declarQueue().