Kev*_*Won 19 erlang config rabbitmq
我问/回答这个问题是因为它让我感到困扰,很可能其他人会遇到同样的问题.
在Windows Server 2008 x64上安装RabbitMQ x64 v2.8.6.
在使用默认安装位置到C:\ Program Files\erl5.9.2的Erlang安装之后,我试图通过运行rabbitmq-service.bat来启动服务器.失败:
Please either set ERLANG_HOME to point to your Erlang installation
or place the RabbitMQ server distribution in the Erlang lib folder.
Run Code Online (Sandbox Code Playgroud)
问题是.bat文件没有正确的子路径.与5.9.2(R15B02)版本的erlang.我的ERLANG_HOME目录设置正确,但脚本没有正确使用这个版本的Erlang,这个Erlang noob看起来有一个名为"erts-5.9.2"的新子目录导致问题.也许与这些脚本有亲密关系的人可以描述如何在没有我要描述的黑客解决方法的情况下正确地工作?
Kev*_*Won 18
Windows上有几个RabbitMQ控件.bat文件.您使用的每一个都需要更改以正确反映Erlang路径.在这个例子中,我正在编辑rabbitmq-server.bat,因为它是一个比较简单的...你要运行的任何.bat文件都需要这个hack来使它们工作,使用rabbitmq_service.bat文件是调整最多的人.
编辑那个rabbitmq_server.bat文件,你可以看到大约48行左右有一个检查,看看是否找到了erl.exe,但路径不正确:
if not exist "!ERLANG_HOME!\bin\erl.exe" (
Run Code Online (Sandbox Code Playgroud)
该路径与5.9.2版本的Erlang的文件结构不匹配.我通过简单地从第48行到第58行删除此路径检查来修复此问题,然后,.bat实际上调用了关于第129行的erl.exe:
"!ERLANG_HOME!\bin\erl.exe"
Run Code Online (Sandbox Code Playgroud)
我只是硬编码到我的erl.exe的路径:
"C:\Program Files\erl5.9.2\erts-5.9.2\bin\erl.exe"
Run Code Online (Sandbox Code Playgroud)
路径正确后,将运行rabbitmq .bat文件.
1-设置环境变量:
变量名称:ERLANG_HOME
变量值:C:\Program Files (x86)\erl6.4
注意:不要在上面的步骤中包含bin.
2-添加%ERLANG_HOME%\bin到PATH环境变量:
变量名称:PATH
变量值:%ERLANG_HOME%\bin
这很好用.
我遇到了类似的问题,无法在.bat文件中修改ERLANG_HOME。然后,我在命令提示符下尝试了echo%ERLANG_HOME%,该命令未打印环境变量值(我可以看到ERLANG_HOME环境变量已在高级系统设置下创建),这使我认为我需要重新启动64位服务器安装Erlang。重新启动服务器后,它就像一个魅力。我希望这可以帮助别人。
小智 5
从任何旧版本的 RabbitMQ升级到版本 3.6.9时,Windows 上的 Erlang 18.3 (erl7.3) 和 RabbitMQ 3.6.9 中仍然会出现此问题。这里已经说明的解决方案是在启动服务之前使用' setx -m ERLANG_HOME“C:\Program Files\erl7.3 ”'手动设置ERLANG_HOME 。
发生的情况是,RabbitMQ 3.6.9 安装程序从系统中删除环境变量 ERLANG_HOME,同时删除旧版本的 RabbitMQ。然后,当它继续到安装步骤时,它不会放回 ERLANG_HOME 变量。然后,启动RabbitMQ的批处理文件找不到Erlang。他们尝试使用“where.exe”找到 Erlang 的主目录,但升级后总是失败。
RabbitMQ 的安装程序也不会杀死所有 Erlang 后台进程,导致其许多文件由于 Windows“文件正在使用”问题而无法删除。这会在 %APPDATA%\RabbitMQ 和“C:\Program Files\RabbitMQ”中留下“正在使用的文件”。这些进程是“erl.exe”、“erlsrv.exe”和“epmd.exe”。RabbitMQ 安装程序应在关闭 RabbitMQ Windows 服务后终止这些进程。
RabbitMQ 在 Windows 上相当笨重。