CentOS 7.3 下安裝RabbitMQ
前言
最近想研究一下rabbitmq,昨晚參照網上教程安裝,遇到了一些問題,但是今天終於豁然開朗了,在此記錄一下Linux環境下安裝RabbitMQ的過程,及分享一些遇到的問題合解決方式。
這裡我們安裝RabbitMQ都使用最新的版本。
環境
伺服器:aliyun伺服器
作業系統:CentOS 7.3
RabbitMQ版本:v3.6.15
安裝
Erlang安裝
由於RabbitMQ是Erlang語言編寫的,所以在安裝RabbitMQ之前,我們先安裝並配置Erlang
點選OTP 21.1 Sourxe File 進行下載,並上傳到伺服器 /opt目錄下
解壓原始檔:tar -zxvf otp_src_21.1.tar.gz
進入目錄:cd otp_src_21.1
配置編譯安裝在/opt/erlang目錄下:./configure --prefix=/opt/erlang
安裝後重新編譯:make && make install
配置環境變數:vim /etc/profile 文末新增:export PATH=$PATH:/opt/erlang/bin
生效環境:source /etc/profile
驗證Erlang是否安裝成功:
出現上圖則說明安裝成功
退出(後面有個點哈,別忘了):halt().
RabbitMQ安裝
erlang安裝成功後開始安裝rabbitmq
可以選擇下載安裝包上傳到伺服器進行解壓縮安裝
也可以通過:
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-generic-unix-3.6.15.tar.xz 下載
下載後進行解壓:xz -d rabbitmq-server-generic-unix-3.6.15.tar.xz 解壓為tar檔案
再使用:tar -xvf rabbitmq-server-generic-unix-3.6.15.tar 解壓檔案
解壓完之後,為方便使用重新命名目錄為rabbitmq:mv rabbitmq_server-3.6.15/ rabbitmq
配置環境變數:export PATH=$PATH:/opt/rabbitmq/sbin
環境變數生效:source /etc/profile
接下來啟動rabbitmq:cd /opt/rabbitmq/sbin
後臺啟動:./rabbitmq-server -detached
(啟動發現報一個pid file not written,網上找了很多也沒找到具體原因,但是通過檢視rabbitmq執行狀態是正常啟動的
暫且先留著這個問題)
檢視rabbitmq狀態:./rabbitmqctl status
這裡檢視rabbitmq狀態發生了錯誤,看起來rabbitmq好像沒有啟動起來,但是我們實際上已經執行啟動命令
通過看日誌發現也是一頭霧水,於是就去網上尋找答案,各種關鍵詞,最後在一個部落格發現:erlang和CentOS,rabbitmq與erlang都是有版本依賴關係的,不同版本會存在版本的不相容
回顧一下,我是用的rabbitmq版本為v.3.6.15,而erlang版本使用的v21.1
v3.6.15最小必要版本為3.6.15,而最大支援版本為20.3.x
因此我們使用erlang版本不在範圍內,所以我們重新下載安裝範圍內的erlang版本,這裡我換成了v20.2
重新安裝後,啟動rabbitmq並檢視狀態,發現正常啟動
配置網頁管理外掛:當我們通過http://ip:15672訪問的時候,訪問不到
停止rabbitmq:./rabbitmqctl stop
開啟外掛:rabbitmq-plugins enable rabbitmq_management
啟動rabbitmq:./rabbitmq-server -detached
訪問,發現可以正常訪問:
rabbitmq預設的賬戶是guest 只能本地訪問,因此遠端訪問只能新增使用者去訪問
檢視rabbitmq使用者:rabbitmqctl list_users
檢視使用者許可權:rabbitmqctl list_user_permissions guest
增加使用者: rabbitmqctl add_user admin admin
賦予管理員許可權:
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
設定完之後,我們在頁面用admin賬號登陸,可以正常登陸進去:
注意一點,如果你是阿里雲伺服器,在管理控制檯還需要新增相應埠及對應地址段的安全組規則
這樣我們才能在瀏覽器訪問,不然會出現空白頁