在Linux下安装RabbitMQ

【集成RabbitMQ系列之一】在Linux下安装RabbitMQ

获取erlang(RabbitMQ依赖erlang)

erlang网站主页:https://www.erlang.org/
下载地址:https://erlang.org/download/otp_src_25.0.tar.gz

获取RabbitMQ

RabbitMQ网站主页: https://www.rabbitmq.com/
下载地址: https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.10.4/rabbitmq-server-generic-unix-3.10.4.tar.xz

安装OpenSSL

如果不安装OpenSSL,后续安装完成erlang后,打开erlang,执行crypto:start(). 命令时会有如下报错:

Eshell V5.10.3  (abort with ^G)
1> crypto:start().
** exception error: undefined function crypto:start/0
2>
=ERROR REPORT==== 12-Mar-2014::17:09:15 ===
Unable to load crypto library. Failed with error:
"load_failed, Failed to load NIF library: '/usr/local/lib/erlang/lib/crypto-3.1/priv/lib/crypto.so: undefined symbol: EC_GROUP_new_curve_GF2m'"
OpenSSL might not be installed on this system.

该报错会导致后续在启动 RabbitMQ 报错 “no such file or directory“,“crypto.app“
如果已经安装完 erlang 后,发现有此问题,可先安装 OpenSSL后,再在erlang的编译目录下执行清理命令make clean后,重新编译安装erlang即可。
1.下载OpenSSL源码,下载地址http://www.openssl.org/source/openssl-1.0.1f.tar.gz,上传至服务器,建议路径: /usr/local/src
2.解压OpenSSL: tar -zxvf openssl-1.0.1f.tar.gz
3.配置安装路径,不要和已有的OpenSSL目录重复,建议路径为:/usr/local/openssl-1.0.1f,在解压后的目录中执行 ./config --perfix=/usr/local/openssl-1.0.1f
4.修改配置文件
修改Makefile vi Makefile,在如下行中,CFLAG行前面添加 -fPIC

CC= gcc
CFLAG=-fPIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM

5.编译安装OpenSSL: make && make install
6.如果安装过程中出现如下报错:

smime.pod around line 285: Expected text after =item, not a number
smime.pod around line 289: Expected text after =item, not a number
POD document had syntax errors at /usr/bin/pod2man line 71.
Makefile:544: recipe for target 'install_docs' failed
make: *** [install_docs] Error 255

是由于perl版本较高,OpenSSL 与 perl 不兼容导致的。
可以将文件 /usr/bin/pod2man 中如下代码注释

$parser->parse_from_file (@files);

或者直接删除该文件:rm -f /usr/bin/pod2man
然后重新安装OpenSSL即可。

安装erlang

1.将 erlang 和 RabbitMQ 拷贝至服务器中,建议路径: /usr/local/src
2.安装依赖ncurses-devel: yum install ncurses-devel
3.解压 erlang : tar xf otp_src_25.0.tar.gz
4.配置 erlang,建议安装目录为 /usr/local/erlang25,因为已经有了 javac,所以不再安装,切换到解压的目录中执行以下命令 : ./configure --with-ssl=/usr/local/openssl-1.0.1f --prefix=/usr/local/erlang25 --without-javac/usr/local/openssl-1.0.1f为OpenSSL的安装目录
5.配置中如果有如下报错:

configure: error: in `/usr/local/software/otp_src_24.3.2/erts':
configure: error: no acceptable C compiler found in $PATH

安装C++编译环境即可:sudo yum install gcc-c++
6.配置中如果有如下报错:

configure: error: Perl version 5 is required to build the emulator!
ERROR: /tmp/otp_src_25.0/erts/configure failed!

安装 perl 编译环境即可:sudo yum install perl
7.出现如下信息,即说明配置成功:

JIT disabled due to lack of compiler with C++17 support
******  DOCUMENTATION INFORMATION  ******
documentation  : 
  fop is missing.
  Using fakefop to generate placeholder PDF files.
******************************************

8.编译erlang
切换至解压目录,执行make -j
出现如下信息,即编译成功:

make[2]: 离开目录“/tmp/otp_src_25.0/erts/start_scripts”
make[2]: 进入目录“/tmp/otp_src_25.0/erts/start_scripts”
 GEN    /tmp/otp_src_25.0/bin/start.script
 GEN    /tmp/otp_src_25.0/bin/start_sasl.script
 GEN    /tmp/otp_src_25.0/bin/start_clean.script
 GEN    /tmp/otp_src_25.0/bin/no_dot_erlang.script
make[2]: 离开目录“/tmp/otp_src_25.0/erts/start_scripts”
make[1]: 离开目录“/tmp/otp_src_25.0/erts”

9.安装 erlang
执行 make install
出现如下信息,即安装成功:

ln -s ../lib/erlang/bin/run_erl run_erl
ln -s ../lib/erlang/bin/to_erl to_erl
ln -s ../lib/erlang/bin/dialyzer dialyzer
ln -s ../lib/erlang/bin/typer typer
ln -s ../lib/erlang/bin/escript escript
ln -s ../lib/erlang/bin/ct_run ct_run

10.进入 erlang
切换到安装路径: cd /usr/local/erlang25/bin
执行: ./erl
可以进入到如下 erlang 的 shell 界面,即说明安装成功

Erlang/OTP 25 [erts-13.0] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1]
Eshell V13.0  (abort with ^G)

可以执行命令 crypto:start().

Erlang/OTP 25 [erts-13.0] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1]
Eshell V13.0  (abort with ^G)
1> crypto:start().
ok

安装RabbitMQ

1.解压 RabbitMQ : xz -d rabbitmq-server-generic-unix-3.10.4.tar.xz,再次解压 RabbitMQ : tar xf rabbitmq-server-generic-unix-3.10.4.tar
2.安装 python 依赖: yum install python -y
安装完成,出现如下提示:

更新完毕:
  python.x86_64 0:2.7.5-90.el7
作为依赖被升级:
  python-libs.x86_64 0:2.7.5-90.el7
完毕!

3.安装 xmlto: yum install xmlto -y
安装完成,出现如下提示

已安装:
		xmlto.x86_64 0:0.0.25-7.el7
作为依赖被安装:
  centos-indexhtml.noarch 0:7-9.el7.centos   docbook-dtds.noarch 0:1.0-60.el7  
  docbook-style-xsl.noarch 0:1.78.1-3.el7    flex.x86_64 0:2.5.37-6.el7        
  lynx.x86_64 0:2.8.8-0.3.dev15.el7          m4.x86_64 0:1.4.16-10.el7         
  sgml-common.noarch 0:0.6.3-39.el7          xml-common.noarch 0:0.6.3-39.el7
完毕!

4.安装 simplejson : yum install python-simplejson -y
5.启动 RabbitMQ
切换至 RabbitMQ 安装目录:cd /usr/local/rabbitmq/sbin
启动 RabbitMQ : ./rabbitmq-server
如果有如下报错 :

./rabbitmq-server: 第 73 行:exec: erl: 未找到

是由于 erlang 的环境变量配置问题,临时配置 erlang 的环境变量,执行命令,路径为 erlang 的安装路径下的bin目录: export PATH=$PATH:/usr/local/erlang25/bin,再次启动,启动成功提示如下:

Doc guides:  https://rabbitmq.com/documentation.html
Support:     https://rabbitmq.com/contact.html
Tutorials:   https://rabbitmq.com/getstarted.html
Monitoring:  https://rabbitmq.com/monitoring.html
Logs:/usr/local/rabbitmq/var/log/rabbitmq/rabbit@localhost.log
	 /usr/local/rabbitmq/var/log/rabbitmq/rabbit@localhost_upgrade.log
 <stdout>
Config file(s): (none)
Starting broker... completed with 0 plugins.

日志路径:/usr/local/rabbitmq/var/log/rabbitmq/rabbit@localhost.log
6.查看启动的 RabbitMQ : netstat -nap | grep 5672

tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      1495/beam.smp       
tcp6       0      0 :::5672                 :::*                    LISTEN      1495/beam.smp

7.关闭 RabbitMQ : ./rabbitmqctl stop
提示如下:

Stopping and halting node rabbit@localhost ...

8.永久修改环境变量:
打开文件 vi /etc/profile
在该文件中最后位置添加:

# add erlang path
export PATH=$PATH:/usr/local/erlang25/bin
# add rabbitmq path
export PATH=$PATH:/usr/local/rabbitmq/sbin

执行如下命令,使环境变量立即生效,重启服务器也可以使环境变量生效:source /etc/profile
添加环境变量后,可以通过命令 rabbitmq-servererl,来直接启动 RabbitMQ 和 erlang
9.后台启动 RabbitMQ : rabbitmq-server -detached
10.查看后台是否启动成功:ps -ef | grep rabbitmq

root      19737      1  0 6月05 ?       00:00:31 /usr/local/erlang25/lib/erlang/erts-13.0/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -sbwt none -sbwtdcpu none -sbwtdio none -B i -- -root /usr/local/erlang25/lib/erlang -bindir /usr/local/erlang25/lib/erlang/erts-13.0/bin -progname erl -- -home /root -- -pa  -noshell -noinput -s rabbit boot -boot start_sasl -syslog logger [] -syslog syslog_error_logger false -kernel prevent_overlapping_partitions false -noshell -noinput
root      28686  19426  0 00:07 pts/0    00:00:00 grep --color=auto rabbit

11.RabbitMQ 默认用户 guest 不支持远程访问,新增配置文件:vi /usr/local/rabbitmq/etc/rabbitmq/rabbitmq.config,添加如下内容即可支持默认用户guest 远程访问:

[{rabbit, [{loopback_users, []}]}].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值