我在启动 RabbitMQ 时遇到问题,因为“rabbitmq”用户在用户 (ncoder) 主目录 (/usr/ncoder) 中没有权限。我无法向本地rabbitmq 用户提供对ncoder 用户主目录的写入访问权限,因为它是网络共享。如何更改 cookie 文件的位置以使用 /var/lib/rabbitmq/.erlang.cookie
(rabbitmq 用户有权访问的位置)?
错误:
ncoder@serverA:/etc/rabbitmq$ sudo -u rabbitmq rabbitmqctl start {error_logger,{{2016,3,19},{3,57,2}},"Error when reading /usr/ncoder/.erlang.cookie: eacces",[]} {error_logger,{{2016,3,19},{3,57,2}},crash_report,[[{initial_call,{auth,init,['Argument__1']}},{pid,<0.20.0>},{registered_name,[]},{error_info,{exit,
最佳答案
首先,rabbitmqctl start
不是有效命令。要启动 RabbitMQ,您需要使用 rabbitmq-server
。
现在,关于Erlang cookie文件的位置,它是由Erlang强加的。在您的情况下,您应该将 .erlang.cookie
放入 /var/lib/rabbitmq
中。
如果 Erlang 无法在那里找到它,请验证 $HOME
环境变量是否指向实际的主目录(例如 /var/lib/rabbitmq
); sudo(1) 应该正确设置它。
此外,.erlang.cookie
的权限必须设置为 0400 或 0600:组或任何人都不能读取它。
关于rabbitmq - 如何将 .erlang.cookie 位置更改为外部用户主目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36100926/