想裝個(gè) RabbitMQ,然后源上沒(méi)有彤侍,就只好手動(dòng)裝了骗爆。(對(duì)著果凍就摁下 pakreq
先從官方網(wǎng)站下載 Generic UNIX 的二進(jìn)制包碉哑,地址不用貼了吧 Google 一下就有了食拜。鸵熟。
找個(gè)地方就解壓下來(lái),我現(xiàn)在比較喜歡在 /opt
下面放這些自己安裝的服務(wù)軟件负甸。
cd /opt
tar pxfv ~/Downloads/rabbitmq-server-generic-unix-3.7.2.tar.xz
mv rabbitmq_server-3.7.2 rabbitmq
cd rabbitmq
說(shuō)實(shí)話流强,不喜歡里面的文件夾命名痹届。。打月。又不是系統(tǒng)級(jí)別工具干嘛叫自己 sbin
呢短纵。
ls -al
[OUTPUT]-------------------------------------------------------------------------------
total 72
drwxrwxr-x 14 rabbitmq wheel 4096 Dec 30 04:30 .
drwxrwxr-x 8 root wheel 4096 Dec 29 18:13 ..
drwxrwxr-x 2 rabbitmq wheel 12288 Dec 23 15:00 ebin
drwxrwxr-x 2 rabbitmq wheel 4096 Dec 23 15:00 escript
drwxrwxr-x 2 rabbitmq wheel 4096 Dec 23 15:00 include
drwxrwxr-x 3 rabbitmq wheel 4096 Dec 30 03:49 log
drwxrwxr-x 2 rabbitmq wheel 4096 Dec 23 15:00 plugins
drwxrwxr-x 3 rabbitmq wheel 4096 Dec 23 15:00 priv
drwxrwxr-x 2 rabbitmq wheel 4096 Dec 23 15:00 sbin
drwxrwxr-x 3 rabbitmq wheel 4096 Dec 23 15:00 share
權(quán)限是我自己事先設(shè)置好的,我增加了一個(gè) rabbitmq
用戶專(zhuān)門(mén)用來(lái)跑 rabbitmq-server
僵控。順便為了方便管理,增加了 config
鱼冀、data
报破、log
三個(gè)文件夾。
useradd -b /opt/rabbitmq -d /opt/rabbitmq -s /sbin/nologin rabbitmq
usermod -a -G wheel rabbitmq
mkdir config
mkdir data
mkdir log
新建了一個(gè) rabbitmq.server
方便直接用 systemd
啟動(dòng)千绪。
[Unit]
Description=RabbitMQ - Message Queue Service
Requires=network.target
[Service]
EnvironmentFile=/opt/rabbitmq/config/rabbitmq-environment
ExecStart=/opt/rabbitmq/sbin/rabbitmq-server
User=rabbitmq
[Install]
WantedBy=multi-user.target
環(huán)境變量我獨(dú)立在外部文件 /opt/rabbitmq/config/rabbitmq-environment
了
# The HOME directory
HOME=/opt/rabbitmq
# Home for RabbitMQ
RABBITMQ_HOME=/opt/rabbitmq
# Base Directory
RABBITMQ_BASE=$RABBITMQ_HOME/data
# MNESIA Directory
RABBITMQ_MNESIA_BASE=$RABBITMQ_HOME/data/mnesia
# Log base
RABBITMQ_LOG_BASE=$RABBITMQ_HOME/log
# Config file location and new filename
RABBITMQ_CONFIG_FILE=$RABBITMQ_HOME/config/rabbitmq-def
RABBITMQ_ADVANCED_CONFIG_FILE=$RABBITMQ_HOME/config/rabbitmq-adv
把文件復(fù)制到 /etc/systemd/system
然后 systemctl daemon-reload
就可以用 systemd 啟動(dòng) RabbitMQ 了充易。rabbitmq-def
和 rabbitmq-adv
這兩個(gè)配置文件不需要增加后綴名,啟動(dòng)的時(shí)候 RabbitMQ 會(huì)自動(dòng)創(chuàng)建對(duì)應(yīng)的文件荸型。
建議把 HOME
刪掉之后導(dǎo)出到環(huán)境變量里盹靴,我的環(huán)境變量是從 /etc/profile.d
額外加載的,所以我在里面創(chuàng)建了 rabbitmq.sh
瑞妇,之后要 chmod +x rabbitmq.sh
稿静。
# Home for RabbitMQ
export RABBITMQ_HOME=/opt/rabbitmq
# Base Directory
export RABBITMQ_BASE=$RABBITMQ_HOME/data
# MNESIA Directory
export RABBITMQ_MNESIA_BASE=$RABBITMQ_HOME/data/mnesia
# Log base
export RABBITMQ_LOG_BASE=$RABBITMQ_HOME/log
# Config file location and new filename
export RABBITMQ_CONFIG_FILE=$RABBITMQ_HOME/config/rabbitmq-def
export RABBITMQ_ADVANCED_CONFIG_FILE=$RABBITMQ_HOME/config/rabbitmq-adv
#Export variables
export PATH=$PATH:$RABBITMQ_HOME/sbin
注意 RABBITMQ_BASE
是必須要的,因?yàn)?rabbitmqctl
命令從環(huán)境變量里獲得 RabbitMQ 的位置來(lái)操作 rabbitmq-server
辕狰。還注意的是改备,RabbitMQ 的 socket 文件,只有運(yùn)行 RabbitMQ 的用戶可操作蔓倍,所以在這里需要用 rabbitmq
的權(quán)限來(lái)使用 rabbitmqctl
悬钳,我增加了個(gè) alias 來(lái)使用(怎么這么刁鉆啊
alias rabbitmqctl='sudo -E -u rabbitmq rabbitmqctl';
好了這樣就可以愉快地使用 RabbitMQ 開(kāi)發(fā)了(吧?
其他進(jìn)階設(shè)置請(qǐng)參考資料 =w = : RabbitMQ - Install on Generic Unix