使用多个独立项目启动TRAC服务器

时间:2018-03-21 16:43:19

标签: python authentication trac tracd

我正在运行TRAC服务器(tracd服务),配置了3个独立项目。每个项目都有一个自己的密码文件,以保持用户管理的独立性。 TRAC作为Windows服务启动,如https://trac.edgewall.org/wiki/0.11/TracStandalone所述 如果HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ tracd \ Parameters中键'AppParameters'的字符串长度太长,似乎启动TRAC服务器不起作用。最大键长约为260个字符。

可以使用以下“AppParameters”键成功启动TRAC服务器:

C:\Python27\Scripts\tracd-script.py -p 80 --auth=',C:\Trac\Moisture\conf\.htpasswd,mt.com' --auth=',C:\Trac\Balances\conf\.htpasswd,mt.com' --auth=',C:\Trac\Weights\conf\.htpasswd,mt.com' C:\Trac\Moisture C:\Trac\Balances C:\Trac\Weights

TRAC服务器不会以“AppParameters”键开头:

C:\Python27\Scripts\tracd-script.py -p 80 --auth='Moisture,C:\Trac\Moisture\conf\.htpasswd,mt.com' --auth='Balances,C:\Trac\Balances\conf\.htpasswd,mt.com' --auth='Weights,C:\Trac\Weights\conf\.htpasswd,mt.com' C:\Trac\Moisture C:\Trac\Balances C:\Trac\Weights

如果我添加第四个项目,则无法再启动TRAC服务器,因为字符串太长。这个问题已知吗?有解决方法吗?

1 个答案:

答案 0 :(得分:0)

您还可以使用-e option来指定Trac环境父目录,而不是显式列出每个环境路径,从而缩短命令。

更广泛的解决方案:

您可以使用nssm运行服务。

  1. 安装nssm并将其放在您的路径上。我使用chocolatey包管理器安装:choco install -y nssm
  2. 创建批处理文件run_tracd.bat

    C:\Python27-x86\Scripts\tracd.exe -p 8080 env1

  3. 运行nssm install tracd

    enter image description here

  4. 运行nssm start tracd

  5. 你不必像这样做。您可以避免bat文件并在nssm GUI中输入参数。我不是Windows专家,但我喜欢bat文件,因为它更容易编辑。但是,可能存在我不知道的安全问题,或者将参数放在nssm GUI中可能更加健壮(您不必担心意外删除bat文件)。以下内容对我也有用:

    enter image description here