Bastos

let’s code!


Instalando TRAC/SVN/DAV com Apache

Instalei o subversion com trac e webdav aqui no servidor, foi duro mas no final deu tudo certo, o trac e o webdav estão instalados e suportando múltiplos projetos. O 1° que estou hospedando aqui é meu pequeno wiki feito com Camping, o textcamp.

Essas linhas deram certo dentro da diretiva VirtualHost / Location do httpd.conf

SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/svn/trac
PythonOption TracUriRoot /projects
SetEnv PYTHON_EGG_CACHE /tmp

Encontrei em muitos locais outros meios de configuração, mas esses ai deram certo aqui num Fedora. Coloquei todos os tracs em /var/svn/trac (ex:/var/svn/trac/textcamp) e todos os repositórios em /var/svn/repositories/ (ex:/var/svn/repositories/textcamp), Assim o webdav e o trac conseguem ver todos e mostrar no caso do trac até uma lista deles. Para o webdav reconhecer vários repositórios basta usar:

SVNParentPath /var/svn/repositories

ao invés de:

SVNPath /var/svn/repositories/textcamp

o mesmo com a configuração do trac:

PythonOption TracEnvParentDir /var/svn/trac

No meu servidor eu usei mod_python pois é mais rápido que o fastcgi.

No final ficou assim:

<VirtualHost *>
ServerName code.zusee.com
DocumentRoot /var/www/vhosts/code.zusee.com/docs
ErrorLog /var/log/httpd/error_svn_log
CustomLog /var/log/httpd/access_svn_log common

<Location /projects>
  SetHandler mod_python
  PythonHandler trac.web.modpython_frontend
  PythonOption TracEnvParentDir /var/svn/trac
  PythonOption TracUriRoot /projects
  SetEnv PYTHON_EGG_CACHE /tmp
</Location>

<LocationMatch "/projects/[[:alnum:]]+/login">
        AuthType Basic
        AuthName "trac"
        AuthUserFile /var/passwdfile
        Require valid-user
</LocationMatch>

<Location "/dav">
  DAV svn
# SVNPath /var/svn/repositories
  SVNParentPath /var/svn/repositories
   AuthType Basic
  AuthName "Zusee Subversion"
  AuthUserFile /var/passwdfile
  <LimitExcept GET PROPFIND OPTIONS REPORT>
  Require valid-user
  </LimitExcept>
  # SSLRequireSSL
</Location>

</VirtualHost>

Outra coisa, aqui eu usei um virtualhost explicitado mesmo pq tinha que configurar essas diretivas, mas no servidor instalei o mod_vhost_alias que faz com que se crie subdomínios apenas com pastas ;)

Published by Bastos, on June 20th, 2007 at 5:35 pm. Filled under: apache, subversion, trac, zusee | 7 Comments