surroundings:
CentOS 7.6
Erlang OTP 20.3 Released
RabbitMQ 3.7.17
Firewall Status: not running (you can also open the specified port according to the situation)
Perform the role: administrator / root
First, install Erlang
1. Installing Erlang environment
yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget
2. After downloading CentOS Erlang uploaded to the root directory (otp_src_20.3.tar.gz)
Download: https://www.erlang.org/downloads
[root@yyj ~]# ll 总用量 95864 -rw-------. 1 root root 1235 6月 21 21:16 anaconda-ks.cfg -rw-r--r--. 1 root root 88170904 9月 4 14:34 otp_src_20.3.tar.gz -rw-r--r--. 1 root root 9982364 9月 4 14:07 rabbitmq-server-generic-unix-3.7.17.tar.xz
3. decompression otp_src_20.3.tar.gz to the / usr / local /
[root@yyj ~]# tar -zxvf ./otp_src_20.3.tar.gz -C /usr/local/
4. compile and install
[root@yyj ~]# cd /usr/local/otp_src_20.3/ [root@yyj otp_src_20.3]# ./configure --prefix=/usr/local/erlang [root@yyj otp_src_20.3]# make && make install
5. Set Environment Variables
[Root @ YYJ erlang] # vi / etc / profile
vi Inserts (modified according to the installation position)
export ERLANG_HOME = / usr / local / erlang / lib / erlang # catalog note here is erlang erlang directory under the lib directory export PATH = $ ERLANG_HOME / bin # If you already have a PATH, and Windows as additional behind it, the difference is by: separated
After insertion results
#JDK environment setting
export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#erlang evn setting
export ERLANG_HOME=/usr/local/erlang/lib/erlang
export PATH=$PATH:$JAVA_HOME/bin:$ERLANG_HOME/bin;
6. Re-use environment variables
[root@yyj erlang]# source /etc/profile
7. Verify whether the installation was successful Erlang
[root@yyj erlang]# erl -version Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 9.3
Second, install RabbitMQ Server
1. Download RabbitMQ installation package, and then upload it to the root directory of CentOS
Download: https://www.rabbitmq.com/
[root@yyj ~]# ll 总用量 95864 -rw-------. 1 root root 1235 6月 21 21:16 anaconda-ks.cfg -rw-r--r--. 1 root root 88170904 9月 4 14:34 otp_src_20.3.tar.gz -rw-r--r--. 1 root root 9982364 9月 4 14:07 rabbitmq-server-generic-unix-3.7.17.tar.xz
2. Extract to / usr / local
[root@yyj ~]# xz -d ./rabbitmq-server-generic-unix-3.7.17.tar.xz [root@yyj ~]# tar -xvf ./rabbitmq-server-generic-unix-3.7.17.tar -C /usr/local/
rabbitmq-server-generic-unix-3.7.17.tar.xz file suffix is xz, note, use the appropriate command
3. environment variable settings
[root@yyj rabbitmq_server-3.7.17]# vi /etc/profile
vi PATH be appended to the corresponding content (there is no relative path with the HOME, write direct path):
export PATH=$PATH:$JAVA_HOME/bin:$ERLANG_HOME/bin:/usr/local/rabbitmq_server-3.7.17/sbin
4. Re-use environment variables
[root@yyj rabbitmq_server-3.7.17]# source /etc/profile
5. Install the Web management interface plug-in
[root@yyj ~]# rabbitmq-plugins enable rabbitmq_management
7. Start RabbitMQ
[root@yyj ~]# rabbitmq-server -start
6. Set the remote IP RabbitMQ landing
1. Create an account
rabbitmqctl add_user rabbitmq 123456
2. Set user roles
rabbitmqctl set_user_tags rabbitmq administrator
3. Set user rights
rabbitmqctl set_permissions -p "/" rabbitmq ".*" ".*" ".*"
4. After the setup is complete you can view the current users and roles (need to open the service)
rabbitmqctl list_users
执行命令预览:
[root@yyj ~]# rabbitmqctl add_user rabbitmq 123456 Adding user "rabbitmq" ... [root@yyj ~]# rabbitmqctl set_user_tags rabbitmq administrator Setting tags for user "rabbitmq" to [administrator] ... [root@yyj ~]# rabbitmqctl set_permissions -p "/" rabbitmq ".*" ".*" ".*" Setting permissions for user "rabbitmq" in vhost "/" ... [root@yyj ~]# rabbitmqctl list_users Listing users ... user tags rabbitmq [administrator] guest [administrator]
7. Remote IP landing test (default port: 15672)
8. The configuration daemon (post launch)
8.1 increase from the start script:
[Root @ YYJ ~] # we /etc/init.d/rabbitmq-server
8.2 Add rabbitmq-server script content
#!/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:/usr/local/erlang/lib/erlang/bin NAME=rabbitmq-server #DAEMON=/usr/sbin/${NAME} CONTROL = # / usr / sbin / rabbitmqctl # here according to its own configuration DAEMON = / usr / local / rabbitmq_server-3.7.17 / sbin / $ {NAME} # here according to its own configuration CONTROL = / usr / local / rabbitmq_server -3.7.17 / sbin / rabbitmqctl DESC = RabbitMQ-Server the USER = the root ROTATE_SUFFIX = # here according to its own configuration INIT_LOG_DIR = / usr / local / rabbitmq_server-3.7.17 / var / log / RabbitMQ # here according to its own configuration PID_FILE=/usr/local/rabbitmq_server-3.7.17/var/lib/rabbitmq/mnesia/[email protected] START_PROG = "daemon" LOCK_FILE = / var / Lock / subsys / $ NAME Test Exit the -X-$ dAEMON || 0 Test Exit the -X-$ 0 || CONTROL RETVAL = 0 SET -e [-f / etc / default / $ {NAME}] &&. / etc / default / $ {NAME} ensure_pid_dir () { PID_DIR = pid_file The {} $ `` dirname 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
Amend section:
# Remember increase Erlang environment path
the PATH = / sbin: / usr / sbin: / bin: / usr / bin: / usr / local / erlang / lib / Erlang / bin # Remember increase Erlang environment path / usr / local / erlang / lib / Erlang / bin
# daemon
dAEMON = /usr/local/rabbitmq_server-3.7.17/sbin /} $ {NAME
CONTROL = /usr/local/rabbitmq_server-3.7.17/sbin / rabbitmqctl
DESC = RabbitMQ-Server
the USER = the root
#LOG log
INIT_LOG_DIR = /data/soft/rabbitmq_server-3.7.9/var/log/rabbitmq
# PID file, you can find -name rabbit * .pid by executing the command find / path
pid_file the = /usr/local/rabbitmq_server-3.7 .17 / var / lib / rabbitmq / mnesia / rabbit @ yyj.pid
8.3 Set Permissions
[root@yyj ~]# chmod 755 /etc/init.d/rabbitmq-server
8.4 boot from Kai
Adding to boot system: [root @ yyj ~] # chkconfig --add /etc/init.d/rabbitmq-server configured to start automatically with the system daemon: [root @ yyj ~] # chkconfig rabbitmq-server on See start command entry: [YYJ the root @ ~] # the chkconfig --list RabbitMQ server-0: off 1: off 2: opening 3: On 4: opening 5: opening 6: off Run reboot, restart the server to verify nginx boot: [root @ yyj ~] # reboot optional commands: Close the boot from Kai order: chkconfig rabbitmq-server off the delete command: chkconfig --del rabbitmq-server