• Linux环境下安装部署单机RabbitMQ(离线)


    摘要

    本文档适用于在Linux系统下部署单体RabbitMQ,是在无网的情况下部署的。涉及的任何操作都是通过手动下载安装包然后上传到服务器上进行安装,因此也遇到一些问题,并在此文档中记录。

    实际操作环境:Kylin V10,实际操作的Linux系统是银河麒麟。根据我安装的过程,觉得适用于所有Linux的操作系统。

    一、准备环境

    1.确认目前服务器上是否有gcc的环境

    命令:gcc -v

    如出现如图所示,如果出现gcc版本信息及其他相关信息,则说明已经有gcc环境了,跳过后续安装gcc步骤;若没有则需要安装。

    2.安装gcc、g++

    离线安装

    阿里云盘下载地址:https://www.aliyundrive.com/s/VpQ3g4L6oub

    提取码: sj94

    离线安装包:gcc环境安装包

    gcc安装包内容如下:

     g++安装包内容:

    下载后,把安装包解压到服务器上,先安装gcc,再安装g++。分别执行两个文件夹下的install.sh。

    执行命令 sh install.sh 它其实就是去执行rpm -ivh 等全部需要安装命令,这样就可以不用手动去执行了如果执行上述命令出现了问题(一般都是版本问题) 有问题可以手动执行下列图片中所有的rpm。

    例:rpm -ivh gcc-4.8.5-4.el7.x86_64.rpm

    同一个目录下批量安装rpm文件:rpm -ivh *rpm

    如果遇到依赖版本的问题:

    error: Failed dependencies:

    cpp = 4.8.5-4.el7 is needed by gcc-4.8.5-4.el7.x86_64 libgomp = 4.8.5-4.el7 is needed by gcc-4.8.5-4.el7.x86_64 gcc < 8 conflicts with (installed) UnionTech-rpm-config-129-1.uelc20.03.x86_64

    解决方法:强制安装需要安装的rpm文件 参数 --force(强制) --nodeps(不查找依赖关系)

    例如:rpm -ivh *rpm --depes --force

    如果gcc环境安装完成,那么就可以进行下一步啦。

    验证:gcc -vgcc --version
    如下图所示:即为成功

    二、通过安装包的方式安装Erlang

    1.先确认erlang和RabbitMQ之间的版本关系

    温馨提示:下滑就能找到你想要的Erlang版本和RabbitMQ的版本

    地址:https://rabbitmq.com/which-erlang.html

    2.Erlang下载地址

    下载地址:

     http://erlang.org/download/

    记住是下载tar.gz的压缩包,不要下载错了。

    如果下载的慢的,大家可以下载我提供的一个23.2版本

    链接:https://pan.baidu.com/s/1a57cSsytZgUxUXUo4J_bNA
    提取码:gide

    3.上传到服务器

    4.解压下载Erlang的安装包

     tar -zxvf otp_src_23.2.tar.gz

    5.切换到解压好的目录并安装

    cd otp_src_23.2

    ./configure --prefix=/usr/local/erlang --without-javac

    make

    make install

     注意观察最后几行如果没出息error等信息,即为安装成功。

    6.配置环境变量

    vim /etc/profile

    在文件末尾添加如下信息在环境变量中:

    export ERLANG_HOME=/usr/local/erlang

    export PATH=$PATH:/usr/local/erlang/bin

    7.刷新环境变量,使其配置生效

     source /etc/profile

    8.验证是否安装成功

    erl -version 查看版本

    输入:erl 能进入它的面板即为成功。

    输入:q(). 优雅退出

     安装Erlang遇到的问题

    在执行./configure --prefix=/usr/local/erlang --without-javac时遇到如下报错信息:

    configure: error: No curses library functions found
    ERROR: /data/rabbitmq/otp_src_23.2/erts/configure failed! Killed

    这个错误表明在编译 Erlang/OTP 源代码时,找不到 Curses 库函数。Curses 是一个操作终端的库,它通常用于在终端中显示文本界面。

    解决方案:安装ncurses-devel,由于不能联网,因此只能手动安装。

    下载地址:Index of /gnu/ncurses

    提供了一个网盘地址6.0版本

    链接:https://pan.baidu.com/s/1c20-kT7szD6ePL7B8LWWWg
    提取码:n4x8

    我选择的是6.0的版本,大家也可自行选择

    下载之后,上传到服务器上

    安装ncurses

    解压:tar -zxvf ncurses-6.0.tar.gz

    cd ncurses-6.0

    ./configure --with-shared --without-debug --without-ada --enable-overwrite

    make 

    make install

    安装完成之后,就可以重新再执行这个配置Erlang命令:

    ./configure --prefix=/usr/local/erlang --without-javac,就不会报错了,然后再执行后续的make和make install ,Erlang就安装完成。

    三、通过安装包的方式安装RabbitMQ

    1.官方提供的安装RabbitMQ的方式:

    Downloading and Installing RabbitMQ — RabbitMQ

    2. 我们手动下载并上传

    在有网的地方访问如下:并将下载好的RabbitMQ的压缩包上传到服务器。

    https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.8/rabbitmq-server-generic-unix-3.9.8.tar.xz

    大家可以自行更改上面RabbitMQ的版本,可以去官网看RabbitMQ的版本,直接替换上面的下载地址的版本信息。就能下载对应版本RabbitMQ。

    百度网盘地址:

    链接:https://pan.baidu.com/s/1Fq7ZjmUs8qRQeWqM-84lIw
    提取码:vgby

    3.解压

    tar -xvf rabbitmq-server-generic-unix-3.9.8.tar.xz

    4.将解压好的RabbitMQ移动到/usr/local 目录(根据自己意思可移可不移)

     mv rabbitmq_server-3.9.8/ /usr/local/rabbitmq

    5.配置环境变量

    vim /etc/profile

    在文件末尾添加如下信息在环境变量中:

    export RABBIT_MQ_HOME=/usr/local/rabbitmq

    export PATH=$PATH:/usr/local/rabbitmq/sbin

    6.刷新环境变量,使其配置生效

     source /etc/profile

    7.添加web管理的插件

    rabbitmq-plugins enable rabbitmq_management

     执行之后,如下所示:

    8.启动RabbitMQ

    rabbitmq-server -detached

    /usr/local/rabbitmq/sbin/rabbitmq-server -detached

    由于RabbitMQ的默认账号是guest,只能本机通过localhost方式访问了,因此接下来我们重新创建一个用户,并设置成为管理员和全部权限。

    9.创建用户和密码

    rabbitmqctl add_user <用户> <密码>

    例: rabbitmqctl add_user admin admin

    查看是否添加成功:rabbitmqctl list_users

    10.将创建的新用户设置为管理员

    rabbitmqctl set_user_tags <用户名> administrator

    11.赋予新创建的用户所有权限

    rabbitmqctl set_permissions -p / <用户名> ".*" ".*" ".*"

     四、RabbitMQ常用命令

    ## 服务启动停止:

    # 服务启动:

    rabbitmq-server -detached

    #服务停止:

    rabbitmqctl stop

    ## 插件管理:

    # 插件列表:

    rabbitmq-plugins list

    # 启动插件:

    rabbitmq-plugins enable XXX   #(XXX为插件名)

    # 停用插件:

    rabbitmq-plugins disable XXX

    ## 用户管理:

    # 添加用户:

    rabbitmqctl add_user username password

    # 删除用户:

    rabbitmqctl delete_user username

    # 修改密码:

    rabbitmqctl change_password username newpassword

    # 设置用户角色:

    rabbitmqctl set_user_tags username tag

    # 列出用户:

    rabbitmqctl list_users

    ## 权限管理:

    # 列出所有用户权限:

    rabbitmqctl list_permissions

    # 查看制定用户权限:

    rabbitmqctl list_user_permissions username

    # 清除用户权限:

    rabbitmqctl clear_permissions [-p vhostpath] username

    # 设置用户权限:

    # conf: 一个正则匹配哪些资源能被该用户访问

    # write:一个正则匹配哪些资源能被该用户写入

    # read:一个正则匹配哪些资源能被该用户读取

    rabbitmqctl set_permissions [-p vhostpath] username conf write read

    五、验证

    启动RabbitMQ之后,可以通过如下命令查看是否有关于15672的端口,这个web访问的端口

    命令:netstat -lnpt

    说明RabbitMQ就成功启动了。

    访问:IP+15672,如果出现如下图所示:即为安装成功。

    参考:RabbitMQ环境部署(Windows、单机、Docker、集群)_rabbitmq windows 部署_用生命研发技术的博客-CSDN博客

  • 相关阅读:
    Vue2 第一次学习
    Html5的新增特性
    什么是短网址?如何调用接口生成短地址?
    Redis主从同步原理
    2.20每日一题(被积函数带绝对值的定积分)
    在服务中无法正常启动Nacos
    vscode 无法使用 compilerPath“D:.../bin/arm-none-eabi-g++.exe”解析配置。
    MAC层协议总结
    rk3588 mpp_log 不打印输出
    PHP接口自动化测试框架实现
  • 原文地址:https://blog.csdn.net/m0_52985087/article/details/134536709