Trac e mod_python
Table of Contents
Trac 0.7.1 e posteriores suportam mod_python, que aumenta consideravelmente a velocidade de resposta do Trac e permite o uso de muitas funcionalidades do Apache que não são possíveis com tracd/mod_proxy.
Configuração Simples
Aqui está uma configuração típica para Trac CGI/Apache:
ScriptAlias /projects/myproject /path/to/python/share/trac/cgi-bin/trac.cgi <Location /projects/myproject> SetEnv TRAC_ENV /var/trac/myproject </Location>
A configuração equivalente para mod_python é:
<Location /projects/myproject> SetHandler mod_python PythonHandler trac.ModPythonHandler PythonOption TracUriRoot "/projects/myproject" PythonOption TracEnv /var/trac/myproject </Location>
Note que a opção TracUriRoot pode ou não ser necessária na sua configuração. Primeiramente tente sem, e se as URLs produzidas pelo Trac não fores exibidas corretamente, adicione a opção TracUriRoot.
Configurando múltiplos projetos
O manipulador Trac mod_python suporta a opção de configuração similar para Subversion's SvnParentPath, chamado TracEnvParentDir:
<Location /projects> SetHandler mod_python PythonHandler trac.ModPythonHandler PythonOption TracUriRoot /projects PythonOption TracEnvParentDir "/var/trac" </LocationMatch>
Quando você solicitar a URL /projects, você pegará uma lista (atualmente muito simples) de todos os subdiretórios do diretório que você configurou como TracEnvParentDir. Selecionando qualquer projeto nesta lista irá trazer a instância correspondente do Trac. Você deve certificar-se de que o diretório configurado contém somente os diretórios de ambiente Trac que sejam da mesma versão do Trac atualmente instalada, porque isso não é verificado antes da geração da lista de projetos.
Adicionando autenticação
Adicionar autenticação é "direto" em ambos os casos. Por exemplo:
<LocationMatch /projects/[[:alnum:]]+/login> AuthType Basic AuthName "Trac" AuthUserFile /var/www/passwd Require valid-user </LocationMatch>
Edições Win32
Se você executar Trac com mod_python no Widows, os anexos não funcionarão.
Existe uma simples tarefa para isso que é a aplicação da atualização anexada ao ticket #554.
Veja também TracGuide, TracInstall, TracMultipleProjects?
