CentOS7 下安装 erlang19.3 和 rabbitmq 3.7.9

前言

安装过程中最大的坑是不同 Centos 版本对应安装的 rabbitmq 版本不同,而不同的 rabbitmq 版本所依赖的 erlang 版本也不同。而更难受的是 yum 源的 erlang 版本过于“保守”,没有最新的版本,而 erlang 官网的下载速度更让人吐血。做了很多尝试,终于填了这个大坑,仅作此文,写给未来的自己以及那些即将踩坑的童鞋。

一、安装相关
1、首先查看系统的版本
lsb_release -a
2、确认所需的 rabbitmq 版本

打开 RabbitMQ 下载页面,找到下面这个表。根据相应系统版本选择需要的版本
在这里插入图片描述

我用的是 7.x 版本,所以选择了第一个,右键复制下载链接。

3、使用 wget 命令将安装包下载到服务器本地
wget  https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.9/rabbitmq-server-3.7.9-1.el6.noarch.rpm
4、安装 rabbitmq
yum install rabbitmq-server-3.7.9-1.el6.noarch.rpm
5、安装 erlang

安装完后先别急着打开,因为 rabbitmq 需要 erlang 依赖。

所以先确认所需要的 erlang 版本(点这里)

在这里插入图片描述

我刚才安装的是 3.7.9 版本,所以 erlang 版本最低需要 19.3

查看服务器的 erlang 版本

erl

我的是 19.0.4 版本,显然需要更新,我们再查看 yum 源里的 erlang 版本

yum info erlang

令人绝望的,yum 源里最新的也是 19.0.4。所幸 github 里有

所以接下来我们要更新 erlang 源

#vim /etc/yum.repos.d/rabbitmq-erlang.repo

[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/7
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1
#yum clean all
#yum makecache

再一次查看 yum 源中的 erlang 版本

[root@vdevops ~]# yum info erlang

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.cloud.aliyuncs.com
 * extras: mirrors.cloud.aliyuncs.com
 * updates: mirrors.cloud.aliyuncs.com
Installed Packages
Name        : erlang
Arch        : x86_64
Version     : 19.0.4
Release     : 1.el7.centos
Size        : 33 M
Repo        : installed
Summary     : General-purpose programming language and runtime environment
URL         : http://www.erlang.org
License     : ERPL
Description : This is a minimal packaging of Erlang produced by Pivotal to support
            : running RabbitMQ. Compared to the community Erlang packaging it is
            : monolithic, has fewer dependencies, and has lower disk and memory
            : overhead. Many applications from Erlang Open Telecom Platform (OTP)
            : have been removed. The following applications remain: asn1, compiler,
            : crypto, erl_interface, erts, hipe, inets, kernel, mnesia, os_mon,
            : otp_mibs, public_key, reltool, runtime_tools, sasl, snmp, ssl, stdlib,
            : syntax_tools and xmerl.

Available Packages
Name        : erlang
Arch        : x86_64
Version     : 20.3.8.14
Release     : 1.el7.centos
Size        : 18 M
Repo        : rabbitmq-erlang
Summary     : General-purpose programming language and runtime environment
URL         : http://www.erlang.org
License     : ERPL
Description : This is a minimal packaging of Erlang produced by Pivotal to support
            : running RabbitMQ. Compared to the community Erlang packaging it is
            : monolithic, has fewer dependencies, and has lower disk and memory
            : overhead. Many applications from Erlang Open Telecom Platform (OTP)
            : have been removed. The following applications remain: asn1, compiler,
            : crypto, erl_interface, erts, hipe, inets, kernel, mnesia, os_mon,
            : otp_mibs, public_key, reltool, runtime_tools, sasl, snmp, ssl, stdlib,
            : syntax_tools and xmerl.

可以看到,最新的是 20.4,所以接下来就更新 erlang 吧

yum update erlang

测试 erl

[root@vdevops home]# erl
Erlang/OTP 20 [erts-9.3.3.6] [source] [64-bit]

已经升到了 20.x 版本。

6、测试效果
systemctl start rabbitmq-server

查看服务启动状态

rabbitmqctl status

当然,Linux 的设计哲学就是没有结果就是最好的结果,所以执行上面那条命令没有报错的话,其实就是成功启动了。

二、设置相关
设置为后台守护进程启动并且随系统启动而启动
sudo chkconfig rabbitmq-server on
设置端口

运行 RabbitMQ 需要开放156725672端口。

Centos升级到7之后,发现无法使用iptables控制Linuxs的端口,Centos 7使用firewall-cmd代替了原来的iptables。

1)先启动防火墙 systemctl start firewalld,查看防火墙启动状态 systemctl status firewalld

2)开放给外部访问 15672 端口(5672 端口同理)

firewall-cmd --zone=public --add-port=15672/tcp --permanent

firewall-cmd --reload
启动插件功能

只有启动了插件管理功能才可以通过 web 管理页面管理 RabbitMQ

sudo /sbin/rabbitmq-plugins enable rabbitmq_management
用户管理

查询安装默认的用户(一般有一个guest 用户和一个administrator管理员用户)。

rabbitmqctl list_users

但是guest用户只可以在本机通过localhost的方式访问,如果要通过别的机器登陆 web 访问就得新加一个用户并且授权。

新加一个用户可以使用命令

# 其中admin 是用户名,StrongPassword是密码
rabbitmqctl add_user admin StrongPassword

# 通过命令给用户增加角色权限 
rabbitmqctl set_user_tags qredb administrator

# 给用户增加所有访问权限 
rabbitmqctl  set_permissions -p "/" qredb '.*' '.*' '.*'

到此就可以通过http://:15672/访问RabbitMQ了。

新增一个用户

rabbitmqctl  add_user  Username  Password

删除一个用户

rabbitmqctl  delete_user  Username

修改用户的密码

rabbitmqctl  change_password  Username  Newpassword

查看当前用户列表

CentOS 7 防火墙配置命令参考
  • https://www.cnblogs.com/moxiaoan/p/5683743.html
  • https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/security_guide/sec-using_firewalls
参考资料

[1] https://blog.csdn.net/libafei/article/details/80573655
[2] https://www.jianshu.com/p/f54dc259a9ed

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 1. 安装Erlang - 首先,需要安装Erlang的依赖库,执行以下命令: ``` sudo yum install epel-release sudo yum install gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf ``` - 下载Erlang安装包,可以从官网下载,也可以使用以下命令下载: ``` wget https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_64/esl-erlang_23.3.4-1~centos~7_amd64.rpm ``` - 安装Erlang,执行以下命令: ``` sudo rpm -Uvh esl-erlang_23.3.4-1~centos~7_amd64.rpm ``` - 验证Erlang是否安装成功,执行以下命令: ``` erl ``` 如果能够进入Erlang的交互式环境,则说明安装成功。 2. 安装RabbitMQ - 添加RabbitMQ的Yum源,执行以下命令: ``` sudo tee /etc/yum.repos.d/rabbitmq.repo <<EOF [bintray-rabbitmq-server] name=bintray-rabbitmq-rpm baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/7/ gpgcheck=0 repo_gpgcheck=0 enabled=1 EOF ``` - 安装RabbitMQ,执行以下命令: ``` sudo yum install rabbitmq-server ``` - 启动RabbitMQ服务,执行以下命令: ``` sudo systemctl start rabbitmq-server ``` - 设置RabbitMQ服务开机自启动,执行以下命令: ``` sudo systemctl enable rabbitmq-server ``` - 验证RabbitMQ是否安装成功,执行以下命令: ``` sudo rabbitmqctl status ``` 如果能够看到类似以下输出,则说明安装成功: ``` Status of node rabbit@localhost ... [{pid,xxx}, {running_applications,[{rabbit,"RabbitMQ","3.8.16"}, {rabbit_common,[],"3.8.16"}, {amqp_client,"RabbitMQ AMQP Client","5.11.0"}, {rabbitmq_management,"RabbitMQ Management","3.8.16"}, {rabbitmq_management_agent,"RabbitMQ Management Agent","3.8.16"}, {rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.8.16"}, {webmachine,"webmachine","1.10.3"}, {mochiweb,"MochiMedia Web Server","2.20.0"}, {jsx,"JSX","2.11.0"}, {rabbitmq_prometheus,"Prometheus metrics exporter for RabbitMQ","3.8.16"}, {prometheus,"Prometheus","4.4.0"}, {prometheus_process_collector,"Prometheus process collector","4.4.0"}, {prometheus_httpd,"Prometheus httpd","4.4.0"}, {os_mon,"CPO CXC 138 46","2.4.7"}, {cowboy,"Small, fast, modular HTTP server.","2.8.0"}]}, {os,{unix,linux}}, {erlang_version,"xxx"}, {memory,[{total,xxx}, {connection_readers,xxx}, {connection_writers,xxx}, {connection_channels,xxx}, {connection_other,xxx}, {queue_procs,xxx}, {queue_slave_procs,xxx}, {plugins,xxx}, {other_proc,xxx}, {mnesia,xxx}, {mgmt_db,xxx}, {msg_index,xxx}, {other_ets,xxx}]}, {alarms,[]}, {listeners,[{clustering,xxx,"::"},{amqp,xxx,"::"}]}, {vm_memory_high_watermark,xxx}, {vm_memory_limit,xxx}, {disk_free_limit,xxx}, {disk_free,xxx}, {file_descriptors,[{total_limit,xxx}, {total_used,xxx}, {sockets_limit,xxx}, {sockets_used,xxx}]}, {processes,[{limit,xxx},{used,xxx}]}, {run_queue,xxx}, {uptime,xxx}] ``` ### 回答2: CentOS 7是一款稳定可靠的操作系统,因为其安全性和稳定性得到广泛认可。为了实现消息队列的功能,我们需要安装ErlangRabbitMQ。 一、安装Erlang 1. 首先,我们需要在CentOS 7安装Erlang,打开命令行终端窗口,键入以下命令: sudo yum update sudo yum -y install epel-release 2. 安装依赖库: sudo yum -y install gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf java-1.8.0-openjdk-devel 3. 下载Erlang软件包: wget http://packages.erlang-solutions.com/site/esl/esl-erlang/FLAVOUR_1_general/esl-erlang_24.1-1~centos~7_amd64.rpm 4. 运行以下命令安装Erlang: sudo rpm -Uvh esl-erlang_24.1-1~centos~7_amd64.rpm 二、安装RabbitMQ 1. 下载RabbitMQ: sudo wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.4/rabbitmq-server-generic-unix-3.9.4.tar.xz 2. 解压RabbitMQ: sudo tar -xvf rabbitmq-server-generic-unix-3.9.4.tar.xz 3. 安装RabbitMQ: sudo mv rabbitmq_server-3.9.4 /usr/lib/rabbitmq 4. 创建RabbitMQ配置文件: sudo mkdir /etc/rabbitmq sudo touch /etc/rabbitmq/rabbitmq.conf sudo chmod 777 /etc/rabbitmq/rabbitmq.conf sudo nano /etc/rabbitmq/rabbitmq.conf 5. 将以下内容添加到rabbitmq.conf中: listeners.tcp.default = 5672 6. 创建RabbitMQ环境变量: sudo nano /etc/profile.d/rabbitmq.sh 7. 将以下内容添加到rabbitmq.sh: PATH=$PATH:/usr/lib/rabbitmq/sbin export PATH 8. 创建并启动RabbitMQ服务: sudo rabbitmq-server -detached 9. 检查RabbitMQ服务是否运行: sudo rabbitmqctl status 至此,安装ErlangRabbitMQ的过程已经完成。 ### 回答3: CentOS 7 是一款广受欢迎的 Linux 操作系统,它被广泛用于服务器端应用。ErlangRabbitMQ 是非常强大的开源应用程序,使得在分布式网络环境下构建高性能应用程序变得更加容易。本文将介绍如何在 CentOS 7 上安装 ErlangRabbitMQ安装 Erlang Erlang 是一款强大的编程语言,被广泛应用于实时和高可靠性系统开发。以下是在 CentOS 7 上安装 Erlang 的步骤: 1. 安装 EPEL 和 RHEL 7 的 RPM 存储库,这将提供 erlang 小包和依赖关系。 sudo yum install epel-release sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 2. 导入 erlang-solutions rpm 存储库密钥: wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm sudo rpm -Uvh erlang-solutions-1.0-1.noarch.rpm 3. 安装 erlang: sudo yum install erlang 4. 检查 erlang 是否正确安装: erl 你将会看到 erlang shell: Erlang/OTP 23 [erts-11.0.2] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [hipe] Eshell V11.0.2 (abort with ^G) 安装 RabbitMQ RabbitMQ 是一个功能强大的消息代理,广泛用于分布式应用程序。这里是在 CentOS 7 上安装 RabbitMQ 的步骤: 1. 添加 RabbitMQ 的 RPM 存储库: sudo yum install https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/7/noarch/rabbitmq-server-3.8.8-1.el7.noarch.rpm 2. 安装 rabbitmq: sudo yum install rabbitmq-server 3. 启动和启用 rabbitmq 服务: sudo systemctl start rabbitmq-server.service sudo systemctl enable rabbitmq-server.service 4. 检查 rabbitmq 是否正确安装: sudo systemctl status rabbitmq-server.service 你将会看到: ● rabbitmq-server.service - RabbitMQ Messaging Server Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2020-10-20 23:55:06 UTC; 3s ago Main PID: 5845 (beam.smp) Memory: 104.2M CGroup: /system.slice/rabbitmq-server.service ├─5845 /usr/lib64/erlang/erts-11.0.2/bin/beam.smp -W w -A 64 -P 1048576 -t 5000000 -st ├─6027 erl_child_setup 1024 ├─6062 inet_gethost 4 └─6063 inet_gethost 4 如果看到 Active: active (running),表明 RabbitMQ 正常工作。 总结 以上就是在 CentOS 7 上安装 ErlangRabbitMQ 的详细步骤。这两个应用程序可以使在分布式网络环境下构建高性能应用程序变得更加容易。如果你的应用程序需要可靠的通信,则 RabbitMQ 是一个理想的选择,同时 Erlang 语言可以帮助你快速构建高性能的分布式应用程序。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值