CentOS编译安装RabbitMQ

一、安装erlang

安装rabbitMQ前需要先安装erlang

1.官网上下载源码包OTP 19.1 Source File  对应rabbitmq 3.6.10

rabbitMQ 3.7.5 需要erlang 20.3 以上版本   OTP 20.3 Source File 

2. 解压 :tar -zxvf otp_src_19.1.tar.gz

3. 安装

# tar -zxvf otp_src_19.1.tar.gz
# cd otp_src_19.1
# mkdir /usr/local/erlang
# ./configure --prefix=/usr/local/erlang --without-javac

编译报错:No curses library functions found,缺少ncurses-dev包

rpm -ivh ncurses-devel-5.9-13.20130511.el7.x86_64.rpm 

 

重新编译

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

安装 make && make install

 

 

# cd /usr/local/erlang/bin

# ln -s /usr/local/erlang/bin/erl /usr/bin/erl

 

erlang 版本检查
erl -v
 
cd /etc 修改/etc/profile文件,增加下面的环境变量:
export PATH=$PATH:/usr/local/erlang/bin
source profile
使环境变量生效
erlang安装成功
 
安装RabbitMQ
 
源码包安装

tar -Jxvf rabbitmq-server-generic-unix-3.6.10.tar.xz  

 

 

mkdir /usr/local/rabbitmq

 

 

# cp -R rabbitmq_server-3.6.10/* /usr/local/rabbitmq/

 

 

chmod -R 755 /usr/local/rabbitmq/sbin


RabbitMQ启动

 

 

cd /usr/local/rabbitmq/sbin

 

 

# ./rabbitmq-server

 

 

开启WEB管理插件

 

 

./rabbitmq-plugins enable rabbitmq_management

 

访问http://localhost:15672
默认用户/密码 : guest/guest
注意初始状态只能本地登录,不可通过远程web访问,给权限也不行。需要远程访问的,必须新建用户并赋权限。

 
编译安装设置开机启动
vi /etc/init.d/rabbitmq-server,按照安装目录修改标红色部分参数,如果按教程安装,没有修改/usr/local/rabbitmq/安装目 录则无需修改脚本
执行
chmod +x /etc/init.d/rabbitmq-server
chkconfig --add rabbitmq-server
chkconfig rabbitmq-server on
 
#!/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/local/rabbitmq/sbin/${NAME}
CONTROL=/usr/local/rabbitmq/sbin/rabbitmqctl
DESC=rabbitmq-server
USER=root
ROTATE_SUFFIX=
INIT_LOG_DIR=/usr/local/rabbitmq/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}
start_rabbitmq () {
    status_rabbitmq quiet
    if [ $RETVAL = 0 ] ; then
        echo RabbitMQ is currently running
    else
        RETVAL=0
        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
                ;;
            *)
                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
            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
 
 
 
 

猜你喜欢

转载自www.cnblogs.com/guiji/p/9120581.html