阿里云服务centOS7下安装rabbitmq
环境:
centos: 7.4;阿里云服务器
erlang :18.3;
rabbitmq :rabbitmq-server-generic-unix-3.6.15
参考:1、erlang与centos,rabbitmq与erlang,这些都是有依赖关系的,不同版本会存在不兼容性。
2、rabbitmq官方给出的与erlang/OTP的版本兼容要求: http://www.rabbitmq.com/which-erlang.html;
3、erlang官方下载地址(压缩包):http://www.erlang.org/downloads;
下面二进制(rpm)格式的下载地址:https://www.erlang-solutions.com/resources/download.html
4、rabbitmq官方下载地址:http://www.rabbitmq.com/install-rpm.html;
step1安装erlang;这个链接安装的是18.3的erlang
#####使用wget 方式下载rpm并安装 Ø wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm Ø rpm -Uvh erlang-solutions-1.0-1.noarch.rpm Ø rpm -import http://packages.erlang-solutions.com/rpm/erlang_solutions.asc Ø yum install erlang |
成功界面截图()
验证是否成功
step2下载安装rabbitmq
v wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-generic-unix-3.6.15.tar.xz v xz -d rabbitmq-server-generic-unix-3.6.15.tar.xz v tar xvf rabbitmq-server-generic-unix-3.6.15.tar ####将解压后的rabbitmq_server-3.6.15移动到/usr/loca目录下, v sudo mv rabbitmq_server-3.6.15/ /usr/local/rabbitmq |
step3设置环境变量
第一种方式:临时变量,在shell窗口中运行下面的命令即可
export PATH=$PATH:/usr/local/rabbitmq/sbin |
第二种方式:持久变量,需要更改/etc/profile文件,在该文件最后添加export PATH=$PATH:/usr/local/rabbitmq/sbin,然后退出编辑,是/etc/profile文件生效
##编辑 profile 文件 vi /etc/profile #使编辑后的profile文件生效 source /etc/profile |
step4启动rabbitmq
进入/usr/local/rabbitmq/sbin目录,运行rabbitmq-server 出现如下信息就说明已经启动了
rabbitmq-server -detatched 以守护进程方式启动
rabbitmq-server在当前session中启动,当session过期后,会关闭rabbitmq
异常记录:
-bash-4.2$ rabbitmq-server /usr/local/rabbitmq/sbin/rabbitmq-server: line 51: /usr/local/rabbitmq/var/lib/rabbitmq/mnesia/[email protected]: Permission denied Failed to write pid file: /usr/local/rabbitmq/var/lib/rabbitmq/mnesia/[email protected] -bash-4.2$ sudo ./rabbitmq-server [sudo] password for ddps:
BOOT FAILED ===========
Error description: noproc
Log files (may contain more information): /usr/local/rabbitmq/var/log/rabbitmq/[email protected] /usr/local/rabbitmq/var/log/rabbitmq/[email protected]
Stack trace: [{gen,do_for_proc,2,[{file,"gen.erl"},{line,228}]}, {gen_event,rpc,2,[{file,"gen_event.erl"},{line,239}]}, {rabbit,ensure_working_log_handlers,0, [{file,"src/rabbit.erl"},{line,856}]}, {rabbit,'-boot/0-fun-0-',0,[{file,"src/rabbit.erl"},{line,288}]}, {rabbit,start_it,1,[{file,"src/rabbit.erl"},{line,424}]}, {init,start_em,1,[]}, {init,do_boot,3,[]}]
=INFO REPORT==== 10-Jul-2018::09:39:00.860378 === Error description: noproc
Log files (may contain more information): /usr/local/rabbitmq/var/log/rabbitmq/[email protected] /usr/local/rabbitmq/var/log/rabbitmq/[email protected]
Stack trace: [{gen,do_for_proc,2,[{file,"gen.erl"},{line,228}]}, {gen_event,rpc,2,[{file,"gen_event.erl"},{line,239}]}, {rabbit,ensure_working_log_handlers,0, [{file,"src/rabbit.erl"},{line,856}]}, {rabbit,'-boot/0-fun-0-',0,[{file,"src/rabbit.erl"},{line,288}]}, {rabbit,start_it,1,[{file,"src/rabbit.erl"},{line,424}]}, {init,start_em,1,[]}, {init,do_boot,3,[]}]
{"init terminating in do_boot",noproc} init terminating in do_boot (noproc)
Crash dump is being written to: erl_crash.dump...done -bash-4.2$ |
原因:权限问题
从上面的方法可以看出,先是用普通账户启动的,但是报:[email protected]**.pid: Permission denied;然后又用sudo方式启动,结果还是失败,报Error description: noproc错误;
之后使用root账户,能启动,然后查看日志文件,发现权限有问题,拥有者是root
解决方案有两种,一种是用root账户启动,另一种是更改文件的拥有者,将/usr/local/下的rabbitmq文件夹及其所有子文件全部更改拥有者。