Centos7 手動編譯 RabbitMQ ,並安裝php amqp

 

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().

相關文章
相關標籤/搜索