使用多个独立项目启动 TRAC 服务器
Starting TRAC server with multiple independant projects
我是 运行 一个配置了 3 个独立项目的 TRAC 服务器(tracd 服务)。每个项目都有自己的密码文件,以保持用户管理的独立性。 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 服务器,因为字符串太长。这个问题是已知的吗?有解决方法吗?
您还可以使用 -e option 来缩短您的命令以指定 Trac 环境父目录,而不是明确列出每个环境路径。
更广泛的解决方案:
您可以 运行 使用 nssm 的服务。
- 安装 nssm 并将其放在您的路径中。我使用 chocolatey 包管理器安装:
choco install -y nssm
.
创建批处理文件,run_tracd.bat
:
C:\Python27-x86\Scripts\tracd.exe -p 8080 env1
运行 nssm install tracd
:
运行 nssm start tracd
您不必完全像这样。您可以避免 bat
文件并在 nssm GUI 中输入参数。我不是 Windows 专家,但我喜欢 bat
文件,因为它更容易编辑。但是,可能存在我不知道的安全问题,或者将参数放在 nssm GUI 中可能更可靠(您不必担心 bat 文件被意外删除)。以下也适用于我:
我是 运行 一个配置了 3 个独立项目的 TRAC 服务器(tracd 服务)。每个项目都有自己的密码文件,以保持用户管理的独立性。 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 服务器,因为字符串太长。这个问题是已知的吗?有解决方法吗?
您还可以使用 -e option 来缩短您的命令以指定 Trac 环境父目录,而不是明确列出每个环境路径。
更广泛的解决方案:
您可以 运行 使用 nssm 的服务。
- 安装 nssm 并将其放在您的路径中。我使用 chocolatey 包管理器安装:
choco install -y nssm
. 创建批处理文件,
run_tracd.bat
:C:\Python27-x86\Scripts\tracd.exe -p 8080 env1
运行
nssm install tracd
:运行
nssm start tracd
您不必完全像这样。您可以避免 bat
文件并在 nssm GUI 中输入参数。我不是 Windows 专家,但我喜欢 bat
文件,因为它更容易编辑。但是,可能存在我不知道的安全问题,或者将参数放在 nssm GUI 中可能更可靠(您不必担心 bat 文件被意外删除)。以下也适用于我: