Se o apache, o trac ou subversion não estiverem instalados, faça:
apt-get install subversion #Version: 1.6.6dfsg-2ubuntu1
apt-get install apache2 #Version: 2.2.14-5ubuntu8
apt-get install trac #Version: 0.11.7-1
Preparação inicial
Verifique se tem os módulos necessários no apache
root@mesh-server:~# apache2ctl -M | grep davNo ubuntu instale via:
Syntax OK
dav_module (shared)
dav_svn_module (shared)
root@mesh-server:~#
root@mesh-server:~# apache2ctl -M | grep wsgi
Syntax OK
wsgi_module (shared)
root@mesh-server:~#
apt-get install libapache2-svn #necessário para o svn
apt-get install libapache2-mod-wsgi #necessário para o trac
Crie um local para os repositórios:
mkdir /var/lib/svn
chown www-data:www-data /var/lib/svn/
Crie um local para os trac's:
mkdir /var/lib/trac
chown www-data:www-data /var/lib/trac/
Crie um local para guardar o script wsgi do trac:
mkdir /var/lib/cgi-bin
chown www-data:www-data /var/lib/cgi-bin
Configurando o Apache
Configure o apache /etc/apache2/sites-available/svn com o seguinte conteúdo
<virtualhost *:80>
ServerAdmin webmaster@localhost
ServerName svn-server.local
DocumentRoot /var/www
<directory />
Options FollowSymLinks
AllowOverride None
</directory>
<directory /var/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
deny from all
</directory>
WSGIScriptAlias /trac /var/lib/cgi-bin/trac.wsgi
<directory /var/lib/cgi-bin/trac.wsgi>
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</directory>
<Location "/trac/[^/]+/login">
AuthType Basic
AuthName "Trac"
AuthUserFile /var/lib/svn/svn-auth-file
Require valid-user
</Location>
ErrorLog /var/log/apache2/svn-server-error.log
LogLevel warn
CustomLog /var/log/apache2/svn-server-access.log combined
<location /svn>
DAV svn
SVNParentPath /var/lib/svn
SVNListParentPath on
Order deny,allow
Allow from all
AuthType Basic
AuthName "Subversion"
AuthUserFile /var/lib/svn/svn-auth-file
Require valid-user
</location>
</virtualhost>
Crie o link para o arquivo de configuração
ln -s /etc/apache2/sites-available/svn /etc/apache2/sites-enabled/001-svn
Veja se tudo está ok:
apache2ctl configtest
Reinicie o apache
apache2ctl restart
Criando o script WSGI para acessar o trac pelo Apache
crie o arquivo /var/lib/cgi-bin/trac.wsgi com o seguinte conteúdo
#!/usr/bin/pythonColoque as permissões corretas
# -*- coding: utf-8 -*-
import trac.web.main
def application(environ, start_response):
environ['trac.env_parent_dir'] = '/var/lib/trac'
return trac.web.main.dispatch_request(environ, start_response)
chown www-data:www-data /var/lib/cgi-bin/trac.wsgi
Administrando os usuários
Adicione o primeiro usuário (ex: iuri) com:
sudo -H -u www-data htpasswd -cm /var/lib/svn/svn-auth-file iuri
Nos próximos (ex: diniz) use::
sudo -H -u www-data htpasswd -m /var/lib/svn/svn-auth-file diniz
Criando os repositórios
Para criar um repositório (ex: wolla), faça:
sudo -H -u www-data svnadmin create /var/lib/svn/wolla
Criado os Trac's
Crie um Trac após criar um repositório subversion (veja acima como).
Para criar o trac (ex: wolla) para o repositório criado no passo anterior (ex: wolla), faça, mas fique atento as perguntas:
sudo -H -u www-data trac-admin /var/lib/trac/wolla/ initenv
Project Name [My Project]> wolla [ENTER]Agora é preciso configurar pelo menos um usuário ADMIN no trac para poder usar a interface web do trac-admin, para isso faça (ex: usuário iuri em wolla):
Database connection string [sqlite:db/trac.db]> [ENTER]
Repository type [svn]> [ENTER]
Path to repository [/path/to/repos]> /var/lib/svn/wolla/ [ENTER]
trac-admin /var/lib/trac/wolla/ permission add iuri TRAC_ADMIN
Integrando os commits do subversion com o tickets do Trac
Crie (ou modifique) o arquivo post-commit para o repositório subversion (ex: wolla) que deseja integrar ao respectivo Trac (ex: wolla) na pasta hooks do repositório (ex: /var/lib/svn/wolla/hooks/post-commit)
#!/bin/shAplique as permissões corretas:
REPOS="$1"
REV="$2"
TRAC_ENV="/var/lib/trac/wolla/"
python /usr/share/doc/trac/contrib/trac-post-commit-hook -p "$TRAC_ENV" -r "$REV"
chown www-data:www-data /var/lib/svn/wolla/hooks/post-commit
chmod +x /var/lib/svn/wolla/hooks/post-commit
Corrigindo um BUG do syntax highlighting do Trac
O suporte pygments do trac possui um bug no pacote que vem no Ubuntu 9.10, o link para o jquery.js não foi setado corretamente, para habilitar este suporte basta fazer:
ln -s /usr/share/javascript/jquery/jquery.js /usr/lib/python2.6/dist-packages/trac/htdocs/js
21 comentários:
so faltou dizer como acessar o trac?
URL?
Muito obrigado tutorial muito bom.
@slipperweb
Para acessar o trac usado no exemplo, a URL correta é:
http://svn-server.local/trac
Isso por conta da configuração do apache:
ServerName svn-server.local
e
WSGIScriptAlias /trac /var/lib/cgi-bin/trac.wsgi
cara bom tutorial,mas não consigo acessar o trace com http://svn-server.local/trac
Grande Iuri.
Pesquisando sobre a instalação do trac, acabei chegando ao teu site.
Não estou conseguindo fazer funcionar.
No log aparece isso:
[Mon Apr 04 21:17:05 2011] [error] [client 192.168.0.1] client denied by server configuration: /var/www/
[Mon Apr 04 21:17:05 2011] [error] [client 192.168.0.1] mod_wsgi (pid=22207, process='', application='192.168.0.45|/trac'): Failed to parse WSGI script file '/var/lib/cgi-bin/trac.wsgi'.
[Mon Apr 04 21:17:05 2011] [error] [client 192.168.0.1] mod_wsgi (pid=22207): Exception occurred processing WSGI script '/var/lib/cgi-bin/trac.wsgi'.
[Mon Apr 04 21:17:05 2011] [error] [client 192.168.0.1] File "/var/lib/cgi-bin/trac.wsgi", line 5
[Mon Apr 04 21:17:05 2011] [error] [client 192.168.0.1] environ['trac.env_parent_dir'] = '/var/lib/trac'
[Mon Apr 04 21:17:05 2011] [error] [client 192.168.0.1] ^
[Mon Apr 04 21:17:05 2011] [error] [client 192.168.0.1] IndentationError: expected an indented block
[Mon Apr 04 21:17:06 2011] [error] [client 192.168.0.1] client denied by server configuration: /var/www/favicon.ico
Tens alguma idéia do que pode ser?
Abraço.
@Anônimo,
sua d[uvida foi muito vaga
@Torrichelli,
o blogger parece não aceitar muito bem espaços, o erro é por conta da indentação do python
use este pastbin
Valeu, Iuri.
Problema resolvido.
Obrigado.
Olá Iuri quem fala é o Pedro cheguei a seu artigo pesquisando sobre subversion
tava tentando implementar o seu tutorial e dá um problema quando se cria o link simbólico: ln -s /etc/apache2/sites-available/svn /etc/apache2/sites-enabled/001-svn
erro: "apache2: Syntax error on line 236 of /etc/apache2/apache2.conf: Syntax error on line 52 of /etc/apache2/sites-enabled/001-svn: without matching section[fail]
"
se vc puder me dar alguma dica sobre ficarei muito agradecido
obrigado
@pedro
use este arquivo de configuração do apache
Seu erro é muito vago
@Pedro,
Primeiro, use o pastebin (http://pastebin.com) para postar arquivos
Segundo, você tentou com o arquivo disponível em: http://pastebin.com/5LuhFe1P??
Pedro
Iuri, perdão eu me confudi, akele log era de acesso, nao de erro...ainda nao conseguir acessar o trac pela ulr...mas desde já só a alteração q vc mandou nakele arquivo já foi de grande ajuda, vou continuar estudando por aki...se vier mais alguma dica será muito bem-vinda...abçs
@Pedro,
como vc fez ctrl+c e ctrl+v do site, tente usar este arquivo wsgi
é a mesma dica feita para torichelli
O blog não aceita bem whitespaces
Iuri, muito obrigado, extremamente agradecido...It works!
agora é estudar Trac peso
vlw
Pedro
Iuri, muito obrigado, extremamente agradecido...It works!
agora é estudar Trac peso
vlw
Pedro
Opa! Não consigo acessar o endereço http://svn-server.local/trac pelo browser. sabes o que pode estar acontecendo?
@fernando
Quando no apache se coloca
"ServerName svn-server.local" quer dizer que ele responderá por requisições "Host:svn-server.local"
Porém svn-server.local está cadastrado no seu DNS ou no seu /etc/hosts?
Acredito que não.
Para adicionar rapidamente faça
echo "127.0.0.1 svn-server.local" | sudo tee /etc/hosts
Se quiser que fique disponível para todo mundo
use um nome válido de DNS em "ServerName svn-server.local" que aponte para o ip da máquina onde está instalado o SVN. Fale com o administrador de seu DNS.
Opa! Senti falta do arquivo trac que vai no /etc/sites-available. Neste caso não precisa deste arquivo?
@Fernando
se você observar o ''
ele configura o http://svn-server.local/trac para o trac
Cara, tu entende algo sobre Zoneminder?
Funcionou muito bem aqui! Obrigada!
Só o admin-tab que não tá habilitado. Tem idéia do que possa ser?
@Kamila Holanda
procure seu trac.ini e habilite o webadmin:
[components]
webadmin.* = enabled
Postar um comentário