之前在RabbitMQ在Windows下安裝和運行介紹過Windows環境下的安裝,這裏我們再來看一看Linux環境下的安裝。
這裏以CentOS7爲例來按照RabbitMQ,最簡單的方式肯定是直接用yum來安裝,如下:
- wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
- yum install epel-release
- rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
- yum install erlang
- wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el6.noarch.rpm
- yum install rabbitmq-server-3.6.6-1.el6.noarch.rpm
但是這裏不推薦使用上述yum安裝的方式,因爲上述的方式比較容易出現問題,我們之前RabbitMQ在Windows下安裝和運行操作時,肯定了解到RabbitMQ和Erlang之間是存在版本問題的,所以這建議直接使用壓縮包的形式來進行安裝。
首先我們需要對安裝的Erlang和RabbitMQ的版本進行選擇,這裏可以去RabbitMQ的官網查看其RabbitMQ和Erlang對應的版本信息,地址爲https://www.rabbitmq.com/which-erlang.html
RabbitMQ是採用Erlang進行實現的,安裝RabbitMQ之前,需要先安裝Erlang,所以我們首先來安裝其Erlang的環境,如下:
yum install -y make gcc gcc-c++ m4 openssl openssl-devel ncurses-devel unixODBC unixODBC-devel java java-devel
首先我們需要先利用yum來安裝erlang編譯所依賴的環境
wget http://erlang.org/download/otp_src_19.1.tar.gz
然後可以利用wget命令來下載Erlang源碼包,這裏由於官網下載速度太慢,這裏可以通過其他途徑下載對應的Erlang的安裝包otp_src_xxx.tar.gz
,然後再上傳至CentOS系統之中,如下我們上傳至了/usr/local/src
路徑下
tar -zxvf otp_src_19.1.tar.gz
然後將其解壓,如下
cd otp_src_19.1
然後cd進解壓後的包中
./configure --prefix=/usr/local/erlang
配置安裝路徑,進行編譯
make && make install
然後,直接執行make && make install
進行編譯安裝
安裝後,我們切換目錄至``/usr/local/erlang` 中,查看其目錄,如下:
然後將 /usr/local/erlang/bin
這個文件夾加入到環境變量中,加載以下即可直接使用,如下:
環境環境配置完成後,直接輸入erl
,得到如下圖得安裝成功
那麼我們該如何退出呢?輸入halt().
退出控制檯,如下:
上述我們完成了Erlang的安裝,接下來就是需要安裝RabbitMQ,這裏我們根據上述安裝的Erlang版本,然後根據官網https://www.rabbitmq.com/which-erlang.html的介紹,選擇合適的版本去安裝RabbitMQ。
首先我們去RabbitMQ官網https://www.rabbitmq.com/releases/rabbitmq-server/挑選合適的版本,然後進行下載,最後上傳至服務器,這裏我們依舊上傳至 /usr/local/src
路徑下
tar -xvf rabbitmq-server-generic-unix-3.6.6.tar.xz -C /usr/local
然後將其解壓到 /usr/local
路徑下,如下:
然後我們就可以查看下解壓的文件,如下:
然後同樣的我們也把RabbitMQ給添加環境變量中,並重載配置文件,如下:
rabbitmq-server -detached
然後就可以啓動rabbitmq服務了,如下:
#後臺啓動rabbitmq服務
rabbitmq-server -detached
如果想要關閉RabbitMQ服務,執行rabbitmqctl stop
即可
rabbitmq-plugins enable rabbitmq_management
然後我們還可以添加web管理插件
添加了web管理插件,我們就可以訪問其web管理頁面了,如下:
如果訪問不了,那麼可以考慮是否防火牆問題,可以使用下列命令開啓相應的端口
firewall-cmd --zone=public --add-port=xxxx/tcp --permanent
xxxx 表示端口號
其中RabbitMQ常用端口如下:
- client端通信端口:5672
- 管理端口:15672
- server間內部通信端口: 25672
- Erlang集羣中類似DNS作用端口:4369
開啓端口後,我們需要重啓防火牆firewall-cmd --reload
,當然我們也可以直接關閉防火牆systemctl stop firewalld.service
需要注意的是,上述雖然我們在可以通過ip進行訪問,但是我們會發現使用guest用戶無法進行登錄,因爲使用默認的用戶guest/guest
(此也爲管理員用戶)是默認限制只能在本機登陸,也就是隻能登陸localhost:15672。所以我們是可以在服務器上進行登錄。
但是這個也是可以通過修改配置文件rabbitmq.conf,取消這個限制。參數loopback_users這個項就是控制訪問的,如果只是取消guest用戶的話,只需要 loopback_users.guest=false
即可。