RabbitMQ 安装后没有配置文件
之前费了半天劲儿在CentOS7上安装了rabbitmq,打开web管理界面后看到没有配置文件(not found),根据网上的方法可以执行
find / -name rabbitmq.config.example
,再拷贝到指定文件夹下重命名,但是我连这个示例文件都没有,另一个缺少的文件是rabbitmq-env.conf。
我当时是tar包安装的,版本也比较低(3.6.12),怀疑是安装的时候有问题,想着卸载重装一下。在网上找了一个rpm,执行安装命令重新安装后,在启动时报错:node with name “rabbit” already running on “xxx”,执行
rabbitmqctl stop
停止服务又会报另一个错误,结果执行
ps -ef | grep rabbitmq
发现居然还真有进程在运行,
kill -9 pid
杀掉进程,可以正常启动了。
但是我执行“find / -name rabbitmq.config发现还是没有配置文件,不过这次已经有rabbitmq.config.example文件了,我又打开rabbitmq的日志,发现:config file(s) : (none),这次是真的麻了,原本这里是一个路径后面写着not found,这次直接给我整一个none,顺便提一嘴,这次我还是没有rabbitmq-env.conf。
我的解决方法是,执行
find / -name rabbitmq-defaults
找到这个文件的位置,打开它看到:
### next line potentially updated in package install steps
SYS_PREFIX=
### next line will be updated when generating a standalone release
ERL_DIR=
CLEAN_BOOT_FILE=start_clean
SASL_BOOT_FILE=start_sasl
if [ -f "${RABBITMQ_HOME}/erlang.mk" ]; then
# RabbitMQ is executed from its source directory. The plugins
# directory and ERL_LIBS are tuned based on this.
RABBITMQ_DEV_ENV=1
fi
## Set default values
BOOT_MODULE="rabbit"
CONFIG_FILE=${SYS_PREFIX}/etc/rabbitmq/rabbitmq
LOG_BASE=${SYS_PREFIX}/var/log/rabbitmq
MNESIA_BASE=${SYS_PREFIX}/var/lib/rabbitmq/mnesia
ENABLED_PLUGINS_FILE=${SYS_PREFIX}/etc/rabbitmq/enabled_plugins
GENERATED_CONFIG_DIR=${SYS_PREFIX}/var/lib/rabbitmq/config
ADVANCED_CONFIG_FILE=${SYS_PREFIX}/etc/rabbitmq/advanced
SCHEMA_DIR=${SYS_PREFIX}/var/lib/rabbitmq/schema
PLUGINS_DIR="${RABBITMQ_HOME}/plugins"
# RABBIT_HOME can contain a version number, so default plugins
# directory can be hard to find if we want to package some plugin
# separately. When RABBITMQ_HOME points to a standard location where
# it's usually being installed by package managers, we add
# "/usr/lib/rabbitmq/plugins" to plugin search path.
case "$RABBITMQ_HOME" in
/usr/lib/rabbitmq/*)
PLUGINS_DIR="/usr/lib/rabbitmq/plugins:$PLUGINS_DIR"
;;
esac
CONF_ENV_FILE=${SYS_PREFIX}/etc/rabbitmq/rabbitmq-env.conf
CONFIG_FILE指定配置文件rabbitmq.config的位置(省略了.config)
CONF_ENV_FILE指定环境配置文件rabbitmq-env.conf
再将rabbitmq.config.example拷贝到CONFIG_FILE指定的目录下,重命名,这次就一切正常了。
不过话说回来,那个示例文件毕竟只是示例文件,配置全给注释掉了,包括rabbitmq-env.conf这个文件,这两个文件都是可以自己创建的,什么时候用得上什么时候再说呗,白折腾这么大工夫。