Linux [Centos7]搭建PHP的RabbitMQ環(huán)境

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

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

[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苫稀)

[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ù)端嬉愧》氛酰】

[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 擴展

[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() 里面會找到下圖:


    amqp.png

OK漏设,PHP 的 AMQP 模塊也打好了墨闲。

參考文章如下:
CentOS安裝RabbitMQ及PHP擴展

就這樣吧,沒有Demo郑口,但可以送大家一個福利 PHP RabbitMQ 教程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸳碧,一起剝皮案震驚了整個濱河市盾鳞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瞻离,老刑警劉巖腾仅,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異套利,居然都是意外死亡推励,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門肉迫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來验辞,“玉大人喊衫,你說我怎么就攤上這事”翘” “怎么了联四?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵朝墩,是天一觀的道長。 經(jīng)常有香客問我亿卤,道長鹿霸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任钻哩,我火速辦了婚禮街氢,結(jié)果婚禮上睦袖,老公的妹妹穿的比我還像新娘。我一直安慰自己伦乔,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布叶堆。 她就那樣靜靜地躺著,像睡著了一般沥匈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缰儿,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天乖阵,我揣著相機與錄音预麸,去河邊找鬼。 笑死对蒲,一個胖子當(dāng)著我的面吹牛贡翘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播泛鸟,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼北滥,長吁一口氣:“原來是場噩夢啊……” “哼递胧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起祝闻,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤联喘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后叭喜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蓖谢,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡闪幽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了溉知。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腕够。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡帚湘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出崇决,到底是詐尸還是另有隱情底挫,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布盈厘,位于F島的核電站沸手,受9級特大地震影響注簿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜诡渴,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望山上。 院中可真熱鬧英支,春花似錦、人聲如沸妄帘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至柏副,卻和暖如春蚣录,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背荔泳。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工玛歌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留擎椰,地道東北人。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓值朋,卻偏偏與公主長得像巩搏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子丰辣,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內(nèi)容

  • RabbitMQ是實現(xiàn)了AMQP協(xié)議的消息隊列框架糯俗,基于Erlang這個最正確的并發(fā)處理語言基礎(chǔ)開發(fā)。支持消息持久...
    阿太哥閱讀 1,925評論 0 0
  • RabbitMQ的安裝 RabbitMQ下載地址 RabbitMQ是由LShift提供的一個Advanced Me...
    二月_春風(fēng)閱讀 14,449評論 0 10
  • 項目產(chǎn)品最近準(zhǔn)備使用RabbitMQ作為消息推送的中間件,今天在公司內(nèi)網(wǎng)部署了一下淘正,因為內(nèi)網(wǎng)環(huán)境的原因,剛開始是想...
    DFKyun閱讀 2,315評論 0 1
  • 簡述 前端時間嘗試著搭建了airflow的高可用(HA)環(huán)境囤采,為避免自己遺忘惩淳,現(xiàn)將安裝過程整理成文檔。公司環(huán)境沒有...
    samsing閱讀 7,111評論 0 15
  • 整體架構(gòu) 部署步驟 基于 Docker 基本概念內(nèi)存節(jié)點只保存狀態(tài)到內(nèi)存代虾,例外情況是:持久的 queue 的內(nèi)容將...
    mvictor閱讀 12,751評論 5 30