RabbitMQ 官網(wǎng)給的建議
RabbitMQ RPM軟件包將需要sudo權(quán)限才能安裝和管理。
RabbitMQ 的依賴包erlang最好用 yum versionlock插件來鎖定版本,以防自動升級到更高版本。
yum versionlock 插件使用方法如下:1、安裝名為yum-plugin-versionlock(yum-versionlock在RHEL 5中調(diào)用)的軟件包魔吐。
[root@kevin /]# yum install yum-plugin-versionlock
2航缀、要安裝或鎖定gcc軟件包的版本
[root@kevin /]# yum versionlock erlang
3、查看效果
[root@kevin /]# cat /etc/yum/pluginconf.d/versionlock.list
# Added locks on Sat Jun 16 11:08:47 2018
0:erlang-R16B-03.18.el7.*
第一步:安裝RabbitMQ的依賴 -- erlang
[root@kevin /]# yum install -y erlang
- 感覺很順利芳誓,很easy!那我們接著來啊鸭。
第二步:安裝RabbitMQ
- 下載RabbitMQ的 RPM 包锹淌,在 RabbitMQ官網(wǎng) 上。
Tips:按照官網(wǎng)的意思赠制,下載時需要根據(jù)電腦赂摆,選擇相應(yīng)的版本挟憔。我這里選擇的是 Centos7.x
[root@kevin /]# wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.6/rabbitmq-server-3.7.6-1.el7.noarch.rpm
- 下載完成后,我們來安裝
[root@kevin /]# rpm -ivh rabbitmq-server-3.7.6-1.el7.noarch.rpm
然后烟号,蛋疼事情發(fā)生了绊谭,出現(xiàn)了下面的報錯:
error: Failed dependencies:
erlang >= 19.3 is needed by rabbitmq-server-3.7.6-1.el7.noarch
socat is needed by rabbitmq-server-3.7.6-1.el7.noarch
[root@kevin /]#
- 進過我一番百度,找到了原因:yum 安裝的 erlang 是 5.10.4版本汪拥,而rabbitmq-server-3.7.6-1.el7.noarch.rpm 這個需要 erlang >= 19.3达传。WTF!
夢回第一步:重新安裝 >= 19.3版本的erlang
- erlang官網(wǎng) v19.3 下載。噩夢般的回到了第一步迫筑。
[root@kevin /]# wget http://erlang.org/download/otp_src_19.3.tar.gz
[root@kevin /]# tar -zxvf otp_src_19.3.tar.gz
經(jīng)過漫長的等待.... 終于下載完成了宪赶。
1、先配一下安裝目錄
[root@kevin /]# ./configure --prefix=/usr/lib/erlang
2脯燃、編譯安裝
[root@kevin /]# make && make install
- 好了搂妻,完成了。我們再試著安裝 rabbitmq的rpm
[root@kevin /]# rpm -ivh rabbitmq-server-3.7.6-1.el7.noarch.rpm
error: Failed dependencies:
erlang >= 19.3 is needed by rabbitmq-server-3.7.6-1.el7.noarch
socat is needed by rabbitmq-server-3.7.6-1.el7.noarch
[root@kevin /]#
這下好了辕棚,我渾身一激靈欲主。我知道我接下來要干什么了 —— 我要恢復(fù)鏡像了。
我在網(wǎng)上找了好久逝嚎,這種情況的解決方法岛蚤。但是沒有什么頭緒。所以只好恢復(fù)鏡像懈糯。從頭再來涤妒。我猜測是 因為 一開始yum 安裝過 erlang 導(dǎo)致的。所以赚哗,恢復(fù)后直接從官網(wǎng)下載erlang-19.3然后她紫,直接編譯安裝。
至此屿储,上面的都是失敗結(jié)果贿讹。下面正式重搞!WTF~
- 老套路:
第一步够掠,安裝RabbitMQ依賴 -- erlang
- 需要注意的是民褂,如果configure出現(xiàn)error時,多半是缺少依賴包疯潭。所以赊堪,我們先來安裝一下依賴包
[root@kevin /]# yum -y install make gcc gcc-c++ m4 ncurses-devel openssl-devel unixODBC-devel
- 接著 下載 & 解壓 & 安裝 erlang
[root@kevin /]# wget http://erlang.org/download/otp_src_19.3.tar.gz // 下載
[root@kevin /]# tar -zxvf otp_src_19.3.tar.gz // 解壓
[root@kevin /]# ./configure --prefix=/usr/lib/erlang // 配一下安裝路勁
[root@kevin /]# make && make install // 安裝
[root@kevin /]# rpm -ivh rabbitmq-server-3.7.6-1.el7.noarch.rpm //安裝RabbitMQ
- 我以為這次可以成功安裝 RabbitMQ的 RPM 了。沒想到啊~
還是報同樣的錯誤:
erlang >= 19.3 is needed by rabbitmq-server-3.7.6-1.el7.noarch
socat is needed by rabbitmq-server-3.7.6-1.el7.noarch我仔細看了一下竖哩。
原來是這樣的:
[root@kevin /]# yum -y install socat
[root@kevin /]# rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc再試一下(WTF?蘖)還TM報錯:
erlang >= 19.3 is needed by rabbitmq-server-3.7.6-1.el7.noarch
// 我心里面還是有點欣慰的,從原來的 1個警告2個錯誤相叁。變成了1個錯誤遵绰。還是有點用的(WTFA苫稀)
- 我又在網(wǎng)上找啊找~ 終于在這里找到了答案:rabbitmq-server installation CentOS - Erlang Error
牛逼,仁兄椿访。直接來硬的:(被說乌企,還真TM的好使~)
[root@kevin /]# rpm -ivh --nodeps rabbitmq-server-3.7.6-1.el7.noarch.rpm
- 至此RabbitMQ算是安裝好了。我們來試一下:
[root@kevin /]# systemctl start rabbitmq-server
- 但是不好意思成玫,我TM發(fā)現(xiàn)逛犹,根本啟動不起來,出現(xiàn)如下錯誤:
service rabbitmq-server start Job for rabbitmq-server.service failed.
See 'systemctl status rabbitmq-server.service'
and 'journalctl -xn' for details. systemctl status rabbitmq-server.service
// 好吧梁剔,又出現(xiàn)錯誤了虽画。然后我就百度什么的,找半天荣病。
// 還是沒有找到解決辦法码撰。【氣人的是个盆,我在把第三種安裝方式解決完成后脖岛。
// 才發(fā)現(xiàn),jouranlctl -xn 是讓我執(zhí)行的一個命令颊亮。
// 但是我沒試過柴梆,我也不知道這個命令執(zhí)行后,能不能解決這個問題终惑。
// 本文后面接著說我成功的例子绍在。這個例子在安裝過程中沒有出現(xiàn)過任何錯誤”⒂校】
此致偿渡,敬禮~ 。 上面兩次安裝都已失敗告終霸奕!注:接下來安裝教程,完全是按照別人的教程來做的质帅。centos7-RabbitMQ安裝 不喜歡的适揉,別說話嫉嘀。
----------------- 我是分割線 ---------------------
下面來看一下,我第三次嘗試吃沪!廢話不多說。
第一步:安裝 erlang
這個教程中什猖,如果有關(guān)yum不懂的,可以看看:CentOS yum 源的配置與使用
[root@kevin /]# yum install epel-release
[root@kevin /]# yum install yum-priorities
- 從Erlang Solution安裝不狮,確保安裝最新的
[root@kevin /]# wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
[root@kevin /]# rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
[root@kevin /]# rpm --import https://packages.erlang-solutions.com/rpm/erlang_solutions.asc
- 修改 /etc/yum.repos.d/erlang_solutions.repo
// 修改結(jié)果如下:
[erlang-solutions]
name=Centos $releasever - $basearch - Erlang Solutions
baseurl=http://packages.erlang-solutions.com/rpm/centos/$releasever/$basearch
gpgcheck=1
gpgkey=http://packages.erlang-solutions.com/rpm/erlang_solutions.asc
enabled=1
- yum 安裝 erlang
[root@kevin /]# yum install erlang
[root@kevin /]# erl // 看一下是否ok
Erlang/OTP 20 [erts-9.3] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V9.3 (abort with ^G)
第二步:安裝RabbitMQ
// 版本自己選擇
[root@kevin /]# wget https://dl.bintray.com/rabbitmq/rabbitmq-server-rpm/rabbitmq-server-3.6.14-1.el7.noarch.rpm
// 導(dǎo)入 rabbitmq 簽名key
[root@kevin /]# rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
// 說真的,我第一次知道yum可以安裝 rpm 包
[root@kevin /]# yum install rabbitmq-server-3.6.14-1.el7.noarch.rpm
- 配置 遠程管理&&監(jiān)聽
*注意:rabbitmqctl 命令在執(zhí)行時推掸,出現(xiàn)長的提示,看看是不是命令輸入錯了谅畅!
啟動/停止/重啟 服務(wù):
啟動:systemctl start rabbitmq-server
重啟:systemctl restart rabbitmq-server
停止:systemctl stop rabbitmq-server
啟用RabbitMQ監(jiān)控插件:
rabbitmq-plugins enable rabbitmq_management
//添加 用戶:admin 密碼:123456
rabbitmqctl add_user admin 123456
設(shè)置administrator用戶角色:
rabbitmqctl set_user_tags admin administrator
設(shè)置用戶權(quán)限:"." 之間有空格。
rabbitmqctl set_permissions -p "/" admin "." "." "."
刪除guest用戶:
rabbitmqctl delete_user guest
測試:
瀏覽器訪問:http://【公網(wǎng)IP】:15672
好了噪服,至此RabbitMQ 服務(wù)端 安裝完成毡泻。
參考文章如下:
部署RabbitMQ
centos7 -----RabbitMQ安裝
----------------- 我是分割線 2號---------------------
開始給 PHP 打 RabbitMQ 模塊:AMQP。這個也是完全按照別人的教程來做的 CentOS安裝RabbitMQ及PHP擴展
注意:在安裝 AMQP 前粘优,需要安裝 AMQP 的依賴庫 librabbitmq 仇味。AMQP擴展是C寫的,而C與RabbitMQ通信一般需要依賴rabbitmq-c庫(也就是librabbitmq)雹顺,所以編譯擴展前需要先裝依賴庫丹墨。
第一步:安裝 rabbitmq-c 【個人喜歡理解為客戶端,用客戶端 連接 服務(wù)端嬉愧》氛酰】
- 官方給的下載地址:rabbitmq-c
[root@kevin /]# git clone https://github.com/alanxz/rabbitmq-c.git // 下載
[root@kevin /]# cd rabbitmq-c && mkdir build && cd build // 這一步是在rabbitmq-c的根目錄下創(chuàng)建一個build子目錄
[root@kevin build]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c .. // 讓cmake根據(jù)../CMakeList.txt 創(chuàng)建Makefile文件。Makefile文件會被創(chuàng)建到build目錄中没酣。注意:不要漏掉 '..' 而 /usr/local/rabbitmq-c 是指定rabbitmq-c 安裝目錄
[root@kevin build]# cmake --build . --target install // build 并安裝 rabbitmq-c庫揽惹。注意:不要漏掉點 '.'
- 爬坑:到這里就已經(jīng)安裝完成了。不過這里有一個坑四康。你可以看一下/usr/local/rabbitmq-c下的目錄只有include和lib64搪搏。因為后面編譯安裝amqp擴展的時候系統(tǒng)會到/usr/local/rabbitmq-c/lib目錄下搜索依賴庫,導(dǎo)致錯誤闪金。所以這里需要加一步:
[root@kevin build]# cd /usr/local/rabbitmq-c && ln -s lib64 lib
第二步:安裝 PHP 的 AMQP 擴展
- 從 pecl官方庫 中下載最新的amqp擴展包疯溺。
[root@kevin /]# wget http://pecl.php.net/get/amqp-1.9.3.tgz // 下載
[root@kevin /]# tar -zvxf amqp-1.9.3 && cd amqp-1.9.3 // 解壓
[root@kevin amqp-1.9.3]# phpize // 生成 configure 可執(zhí)行文件
[root@kevin amqp-1.9.3]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c // 配置一下。這里有2個目錄哎垦,請自行對應(yīng):php-config 目錄 和 剛才安裝的 rabbitmq-c 目錄
[root@kevin amqp-1.9.3]# make && make install
第三步:修改php.ini 開啟 amqp.so 模塊
[root@kevin amqp-1.9.3]# vim /usr/local/php/etc/php.ini // 編輯 php.ini
添加 extension=amqp.so
[root@kevin amqp-1.9.3]# lnmp restart // 保存后囱嫩,重啟 lnmp
-
如果都正常的話,你在 phpinfo() 里面會找到下圖:
OK漏设,PHP 的 AMQP 模塊也打好了墨闲。
參考文章如下:
CentOS安裝RabbitMQ及PHP擴展