Linux中安装RabbitMQ

安装RabbitMQ(所有下载操作都是在/root目录中)

1 安装依赖(已做统一安装)
    yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget
2 安装erlang 语言环境
    2.1 下载erlang包
    wget http://erlang.org/download/otp_src_20.2.tar.gz
    2.2 解压
    tar -xzvf otp_src_20.2.tar.gz -C /usr/local/
    2.2.1 创建需要支持的文件夹
    mkdir /usr/local/erlang
    2.3 切换到安装路径
    cd /usr/local/otp_src_20.2/
    2.4 生产安装配置
    ./configure --prefix=/usr/local/erlang
    2.5 编译并安装
    make && make install
    2.6 配置erlang环境变量
        2.6.1 编辑文件并在底部添加以下内容
        vi /etc/profile
        2.6.2 添加一下内容
            #set erlang environment
            ERL_HOME=/usr/local/erlang
            PATH=$ERL_HOME/bin:$PATH
            export ERL_HOME PATH
        2.6.3 生效修改的文件
        source /etc/profile
    2.7 测试时候安装成功
        输入 erl 进入shell命令控制台即可
3 下载安装RabbitMQ
    RabbitMQ版本列表:https://dl.bintray.com/rabbitmq/all/rabbitmq-server/
    3.1 下载RabbitMQ
        wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.3/rabbitmq-server-generic-unix-3.7.3.tar.xz
    3.2 解压下载的包
        xz -d rabbitmq-server-generic-unix-3.7.3.tar.xz
        tar -xvf rabbitmq-server-generic-unix-3.7.3.tar -C /usr/local/
    3.3 修改rabbitmq文件夹名称
        cd /usr/local/
        mv rabbitmq_server-3.7.3/ rabbitmq-3.7.3/
    3.4 配置rabbitmq环境变量
        3.4.1 编辑文件
        vi /etc/profile
        3.4.2 文件中添加一下内容
            #set rabbitmq environment
            export PATH=$PATH:/usr/local/rabbitmq-3.7.3/sbin
        3.4.3 生效修改
        source /etc/profile
4 启动服务
    rabbitmq-server -detached //启动rabbitmq,-detached代表后台守护进程方式启动。
5 查看状态,如果显示如下截图说明安装成功:
    rabbitmqctl status
6 其他相关命令
    启动服务:rabbitmq-server -detached【 /usr/local/rabbitmq/sbin/rabbitmq-server  -detached 】
    查看状态:rabbitmqctl status【 /usr/local/rabbitmq/sbin/rabbitmqctl status  】
    关闭服务:rabbitmqctl stop【 /usr/local/rabbitmq/sbin/rabbitmqctl stop  】
    列出角色:rabbitmqctl list_users
7 配置网页插件
    7.1 首先创建目录,否则可能报错:
        mkdir /etc/rabbitmq
    7.2 然后启用插件
        rabbitmq-plugins enable rabbitmq_management
8 配置linux 端口 15672 网页管理 5672 AMQP端口:
    firewall-cmd --permanent --add-port=15672/tcp
    firewall-cmd --permanent --add-port=5672/tcp
    systemctl restart firewalld.service
9 在浏览器中输入服务器IP:15672 就可以看到RabbitMQ的WEB管理页面了,是不是很兴奋,可是你没有账号密码。
10 配置访问账号密码和权限
    10.1 默认网页是不允许访问的,需要增加一个用户修改一下权限,代码如下:
        rabbitmqctl add_user superrd superrd  //添加用户,后面两个参数分别是用户名和密码,我这都用superrd了。
        rabbitmqctl set_permissions -p / superrd ".*" ".*" ".*"  //添加权限
        rabbitmqctl set_user_tags superrd administrator  //修改用户角色
    10.2然后就可以远程访问了,然后可直接配置用户权限等信息。登录:http://ip:15672 登录之后在admin里面把guest删除。 
11 加入开机自启脚本 
    vi /etc/init.d/rabbitMQ
复制以下内容
#!/bin/sh  
#  
# rabbitmq-server RabbitMQ broker  
#  
# chkconfig: - 80 05  
# description: Enable AMQP service provided by RabbitMQ  
#  

### BEGIN INIT INFO  
# Provides:          rabbitmq-server  
# Required-Start:    $remote_fs $network  
# Required-Stop:     $remote_fs $network  
# Description:       RabbitMQ broker  
# Short-Description: Enable AMQP service provided by RabbitMQ broker  
### END INIT INFO  

# Source function library.  
. /etc/init.d/functions  
export HOME=/root  
PATH=/sbin:/usr/sbin:/bin:/usr/bin  
NAME=rabbitmq-server  
#DAEMON=/usr/sbin/${NAME}  
#CONTROL=/usr/sbin/rabbitmqctl  
DAEMON=/usr/local/rabbitmq-3.7.3/sbin/${NAME}  
CONTROL=/usr/local/rabbitmq-3.7.3/sbin/rabbitmqctl  
DESC=rabbitmq-server  
USER=root  
ROTATE_SUFFIX=  
INIT_LOG_DIR=/var/log/rabbitmq  
PID_FILE=/var/run/rabbitmq/pid  

START_PROG="daemon"  
LOCK_FILE=/var/lock/subsys/$NAME  

test -x $DAEMON || exit 0  
test -x $CONTROL || exit 0  

RETVAL=0  
set -e  

[ -f /etc/default/${NAME} ] && . /etc/default/${NAME}  

ensure_pid_dir () {  
    PID_DIR=`dirname ${PID_FILE}`  
    if [ ! -d ${PID_DIR} ] ; then  
        mkdir -p ${PID_DIR}  
        chown -R ${USER}:${USER} ${PID_DIR}  
        chmod 755 ${PID_DIR}  
    fi  
}  

remove_pid () {  
    rm -f ${PID_FILE}  
    rmdir `dirname ${PID_FILE}` || :  
}  

start_rabbitmq () {  
    status_rabbitmq quiet  
    if [ $RETVAL = 0 ] ; then  
        echo RabbitMQ is currently running  
    else  
        RETVAL=0  
        ensure_pid_dir  
        set +e  
        RABBITMQ_PID_FILE=$PID_FILE $START_PROG $DAEMON \  
            > "${INIT_LOG_DIR}/startup_log" \  
            2> "${INIT_LOG_DIR}/startup_err" \  
            0<&- &  
        $CONTROL wait $PID_FILE >/dev/null 2>&1  
        RETVAL=$?  
        set -e  
        case "$RETVAL" in  
            0)  
                echo SUCCESS  
                if [ -n "$LOCK_FILE" ] ; then  
                    touch $LOCK_FILE  
                fi  
                ;;  
            *)  
                remove_pid  
                echo FAILED - check ${INIT_LOG_DIR}/startup_\{log, _err\}  
                RETVAL=1  
                ;;  
        esac  
    fi  
}  

stop_rabbitmq () {  
    status_rabbitmq quiet  
    if [ $RETVAL = 0 ] ; then  
        set +e  
        $CONTROL stop ${PID_FILE} > ${INIT_LOG_DIR}/shutdown_log 2> ${INIT_LOG_DIR}/shutdown_err  
        RETVAL=$?  
        set -e  
        if [ $RETVAL = 0 ] ; then  
            remove_pid  
            if [ -n "$LOCK_FILE" ] ; then  
                rm -f $LOCK_FILE  
            fi  
        else  
            echo FAILED - check ${INIT_LOG_DIR}/shutdown_log, _err  
        fi  
    else  
        echo RabbitMQ is not running  
        RETVAL=0  
    fi  
}  

status_rabbitmq() {  
    set +e  
    if [ "$1" != "quiet" ] ; then  
        $CONTROL status 2>&1  
    else  
        $CONTROL status > /dev/null 2>&1  
    fi  
    if [ $? != 0 ] ; then  
        RETVAL=3  
    fi  
    set -e  
}  

rotate_logs_rabbitmq() {  
    set +e  
    $CONTROL rotate_logs ${ROTATE_SUFFIX}  
    if [ $? != 0 ] ; then  
        RETVAL=1  
    fi  
    set -e  
}  

restart_running_rabbitmq () {  
    status_rabbitmq quiet  
    if [ $RETVAL = 0 ] ; then  
        restart_rabbitmq  
    else  
        echo RabbitMQ is not runnning  
        RETVAL=0  
    fi  
}  

restart_rabbitmq() {  
    stop_rabbitmq  
    start_rabbitmq  
}  

case "$1" in  
    start)  
        echo -n "Starting $DESC: "  
        start_rabbitmq  
        echo "$NAME."  
        ;;  
    stop)  
        echo -n "Stopping $DESC: "  
        stop_rabbitmq  
        echo "$NAME."  
        ;;  
    status)  
        status_rabbitmq  
        ;;  
    rotate-logs)  
        echo -n "Rotating log files for $DESC: "  
        rotate_logs_rabbitmq  
        ;;  
    force-reload|reload|restart)  
        echo -n "Restarting $DESC: "  
        restart_rabbitmq  
        echo "$NAME."  
        ;;  
    try-restart)  
        echo -n "Restarting $DESC: "  
        restart_running_rabbitmq  
        echo "$NAME."  
        ;;  
    *)  
        echo "Usage: $0 {start|stop|status|rotate-logs|restart|condrestart|try-restart|reload|force-reload}" >&2  
        RETVAL=1  
        ;;  
esac  

exit $RETVAL 

12.1 脚本的这些内容根据实际情况进行修改
    DAEMON=/server/rabbitmq/sbin/${NAME}
    CONTROL=/server/rabbitmq/sbin/rabbitmqctl
    DESC=rabbitmq-server
    USER=root 

13 执行权限和自启服务
chmod u+x /etc/init.d/rabbitMQ
ln -s $(which erl) /usr/bin/erl && chkconfig rabbitMQ on
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值