Objetivo
Criar uma estrutura capaz de controlar versões de arquivos-fonte em rede local e pela internet, mesmo sem ip fixo ou uma hospedagem com suporte ao subversion.
Downloads
Para atingir nosso objetivo precisamos fazer os seguintes downloads:
- Apache HTTP Server (fazer download) *
- Subversion (fazer download)
- TortoiseSVN (download para 32bit | download para 64bit)
- No-IP.com Dynamic DNS Update Client (fazer download)
* Enfrentei alguns problemas ao tentar instalar na versão 2.2, mas não investi o tempo suficiente para descobrir a causa, por isso da versão 2.0.
Instalando o Apache
A instalação do apache é bastante nnf (next, next, finish), não tem muito mistério. Onde pedir domínios e nome do servidor informe localhost. De preferência para instalá-lo como serviço para garantir que o subversion funcione mesmo sem usuário logado.
Instalando o Subversion
Aqui há um detalhe muito importante! No final do assistente de instalação do subversion existe uma opção para ativar os módulos do svn no apache. Isso facilita bastante as coisas porque alguns módulos possuem dependência e configurar isso na mão pode não ser agradável.
Preparando para as configurações
O primeiro passo é criar nosso repositório, faremos isso através do comando svnadmin. Todas as nossas configurações e repositórios ficarão no diretório C:\Svn, mas se preferir você pode alterá-lo inclusive para outra unidade.
$ svnadmin create C:\Svn\Nome_Projeto
Localize o arquivo de configurações do apache e insire a linha abaixo no final do arquivo Apache2\conf\httpd.conf:
Include "C:/Svn/subversion.conf"
A maioria dos roteadores de ADSL, os D-Link principalmente, reservam a porta 80 para o acesso a suas configuração. Para contornar isso, você pode configurar seu apache para utilizar a porta 8080. Ainda no httpd.conf localize as seguintes linhas e altere o número da porta:
Listen 8080
...
ServerName locahost:8080
Navegue até a pasta Apache2\bin, onde se encontra o htpasswd.exe. Utilizaremos o comando htpasswd para criar usuários e atribuir suas senhas. Exemplo:
$ htpasswd -cm C:\Svn\svn-auth-file thiagob
$ New password: *****
$ Re-type new password: *****
$ Adding password for user thiagob
Para adicionar outros usuários o procedimento é o mesmo. A única mudança está no parâmetro -c que impõe a criação / substituição do arquivo svn-auth-file. Ou seja, após a primeira execução o comando passa a ser:
$ htpasswd -m C:\Svn\svn-auth-file joao
Configurando o repositório
Neste ponto já possuímos um repositório Nome_Projeto, o apache funcionando na porta 8080 e dois usuário: thiagob e joao. Porém ainda não temos como acessar o repositório, pois precisamos atribuir uma url para ele e dizer que usuários possuem quais permissões. Bom, então vamos lá…
Crie um arquivo com o nome de svn-acl na pasta C:\Svn e adicione as seguintes linhas:
[nome_projeto:/]
thiagob = rw
joao = r
Traduzindo estas três linhas: no repositório nome_projeto thiagob lê e escreve, enquanto que joao apenas lê o repositório. Por fim, abra o arquivo C:\Svn\subversion.conf e adicine as seguintes linhas:
<Location /nome_projeto>
DAV svn
SVNPath C:/Svn/nome_projeto
AuthType Basic
AuthName “Subversion Nome Projeto repository”
AuthUserFile C:/Svn/svn-auth-file
Require valid-user
AuthzSVNAccessFile C:/Svn/svn-acl
</Location>
Isso deve ser o suficiente para você acessar o repositório pelo browse através da url http://localhost:8080/nome_projeto. Informe o usuário e senha e verique se retornou “Revision 1: /”.
Esta é apenas a primeira parte, configuramos as coisas no lado servidor. Na parte II configuraremos o TortoiseSVN e veremos alguns dos recursos do svn para o controle de versão. Espero ter ajudado e até a próxima…
34 Comments
Olá , o seguinte trecho:
“Aqui há um detalhe muito importante! No final do assistente de instalação do subversion existe uma opção para ativar os módulos do svn no apache.”
Tem certeza que existe essa opção ? Fiz o download e aqui não aparece nada disso.
Tens razão Hélio, a opção não se encontra no final do assistente e sim junto das opções de criação de atalhos.
Assim que possível corrigirei o post.
Obrigado
Hélio,
Talvez você não tenha instalado ou ocorreu algum erro na instalação do Apache. Essa opção somente aparece se o Apache estiver instalado corretamente.
Thiago,
Instalei conforme o seu procedimento, mas no diretório do subversion não encontrei o subversion.conf, eu teria que criar este arquivo e com quais linhas de comando?
Aguardo o seu retorno.
Desde já agradeço,
David
Onde fica o arquivo subversion.conf no diretorio do SVN?
Obrigado
Sim, este arquivo não existe… É preciso criá-lo. As configurações poderiam ser adicionadas nos arquivos de configuração do apache, mas para facilitar backup e também para manter as coisas separadas achei por bem colocá-lo em outro diretório.
Abraço
Thiago,
Instalei o repositorio no dir
e:\svn\monografia
meu apache2 e svnserve estão no:
c:\arquivos de programas
teoricamente coloquei todas as configurações necessárias. Mas o apache agora não está levantando mais, dá msg: “Requested operation has failed”
Lembrando que no arquivo subversion.conf precisa-se carregar esses dois so:
LoadModule dav_module modules/mod_dav.so
LoadModule auth_module modules/mod_auth.so
Fiz todos os procedimentos, mas no final retornou Revision 0:/.
O que aconteceu?
Isso quer dizer que está tudo ok! Aparece Revision Zero porque nenhum arquivo foi adicionado ao repositório… Na Parte II deste tutorial demonstro como adicionar arquivos ao repositório.
Continue assim que está indo bem!
Boa noite, eu realizei todos os passos conforme descritos, porém, qdo acesso o laclhost:8080/projeto uma tela me retorna com a seguinte mensagem, após digitar corretamente login e senha:
You don’t have permission to access /Projeto on this server.
Verifique se o arquivo de configuração “C:/Svn/svn-acl” foi criado corretamente no momento que criastes os usuários
Muito bom cara… parabens
Thiago, o problema não estava na autenticação do usuário.. Deve ter sido algo que fiz incorretamente na instalação do SVN. Recomeçei do Zero através do seu tutorial e obtive sucesso!!!
Muito obrigado…
Oi thiago,
quando coloquei a url ele pede a senha e o usuario, eu coloquei e ele
retorna o http 500 - erro interno do servidor, onde foi que eu errei?
Obrigado.
Thiago,
tirei a opcao de mensagens amigáveis
do ie e agora a mensagem é esta:
-
Could not open the requested SVN filesystem
obrigado.
Repetindo:
”
-
Could not open the requested SVN filesystem
”
obrigado.
Thiago,
Fiz todos os passos que você indicou, mas no momento em que chamo a url “http://localhost:8080/nome_projeto” dá uma mensagem de que nome_projeto não foi encontrado. O que poderá ser?
Obrigada.
Bom Dia Thiago,
Eu não consegui encontrar esse arquivo “subversion.conf”, e toda vez que vou reiniciar o Apache, ele dá pau.
É assim mesmo, ou não preciso reiniciar o apache depois.
Obrigado,
Wanderson Barrence
Thiago,
Instalei o repositorio no dir
c:\svn\trac
meu apache2 e svnserve estão no:
c:\arquivos de programas
segui a risca seu tuto. Mas o apache não está levantando mais, dá msg: “Requested operation has failed”, já identifiquei que o proble esta no conteúdo do arquivo subversion.conf, pois qdo comento a linha de include, o Apache levanta..
desde já agradeço… aguardo resposta
Ola,
Muito bom seu tutorial. Já baixei tudo aqui!!! Parabéns!!!
Os módulos estão dentro da pasta bin do svn
C:\Arquivos de programas\Subversion\bin
por exemplo.
Lembrar também de dar os dois LoadModule’s no http.conf
LoadModule dav_module modules/mod_dav_svn.so
LoadModule auth_module modules/mod_authz_svn.so
Além do mais, a opção de configurar o apache para o svn só aparece se o apache instalado for versão 2.0.x
Se for a versão 2.2 não vai funcionar…
Olá. Preciso fazer funcionar o subversion para acesso remoto.
Segui todos os passos do tutorial. Quando coloco a linha Include “C:/Svn/subversion.conf” no arquivo httpd.conf meu apache não start mais.. o que pode ser?
Olá Thiago,
Estou com o seguinte problema, após seguir todos os seus passos, não consigo mais restartar o Apache.
Da erro de syntaxe na linha 2 do arquivo C:/SVN/subversion.conf
A linha é: DAV svn (Unknown DAV provider: svn)
O que eu posso ter feito de errado?
Obrigada!
.
parabens
.
Olá, já uso o subversion a algum tempo, mas não integrado com o Apache. O seu tutorial foi de grande ajuda!
É o seguinte, tb tive problemas na instalaçaõ, mas consegui contornar da seguinte maneira:
Quando inclui o arquivo “subversion.conf” no Apache o serviço parou de funcionar.
Syntax error on line 6 of G:/Repositorio/subversion.conf:
AuthName takes one argument, The authentication realm (e.g. “Members Only”).
Mudei essa linha para:
AuthName “SubversionProjetoRepository”
e o Apache parou de dar erro.
Abraços
Caro Thiago!
Infelizmente fiz e refiz todos os passo várias vezes e o resultado é sempre o mesmo:
“Forbidden You don’t have permission to access /sisloca on this server.”
Obs.:
Conteúdo do arquivo svn-acl:
[sisloca:/]
usuario = rw
Conteúdo do arquivo subversion.conf:
DAV svn
SVNPath E:/Svn/sisloca
AuthType Basic
AuthName “Subversion SisLoca Repository”
AuthUserFile E:/Svn/svn-auth-file
Require valid-user
AuthzSVNAccessFile E:/Svn/svn-acl
*Os modulos do subversion estão sendo carregados no apache que foi instalado corretamente sem erros.
*A Include do arquivo subversion.conf foi colocada corretamente.
Tentativas usadas:
-Adicionei o /sisloca como diretorio virtual Resultado: “O mesmo”.
-Adicionei permissao na tag com o parametro Allow from all Resultado: “O mesmo”.
Não sei mais o que fazer, preciso de ajuda.
Mesmo assim agradeço pelo bom tutorial, pois não encontrei nada melhor apesar de ainda não ter funcionado aqui, “Fico feliz por aqueles que disseram ‘Apareceu Revision 0′ ”
Aguardo Resposta…
Quem fizer a configuração manual precisa remover # da frente das seguintes linhas:
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
e adicionar as seguintes linhas
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
Boa Noite,
Configurei o subversion no servidor 2003 server com o apache e consigo acessa-lo via browser, porem quando vou acessar localmente ou nas estações da um erro de conectividade, dizendo que não é possivel conectar com o localhost ou o ip do servidor.
Error: Can’t connect to host ‘localhost’: Nenhuma conexão pôde ser feita porque a máquina de destino as recusou ativamente.
Alguém poderia me ajudar.
Obrigado.
Thiago, gostaria de saber se já existe algum meio de integrar o trac com o svn de forma remota?
Obrigado…
Ola,
tive problemas ao seguir o tuto ‘a risca’. Meu apache(que ja estava instalado) não subia mais…
apos colocar as linhas:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
no httpd.conf. Depois disso, meu apache voltou a funcionar e rolou a mensagem: ‘Revision 0: /’
Abraços!
Notei que o diretório do projeto (remoto-server) fica de tamanho bem inferior ao tamanho do diretório original (repositório local-cliente). Os arquivos são armazenados todos na pasta do projeto publicado ou há outro local? Ele usa algum tipo de compactação?
Obrigado.
Olá Thiago,
primeiramente parabens pelo seu tutorial, segui a risca, porem a autenticacao no arquivo subversion.conf nao esta funcionando, se eu colocar no subversion.conf assim:
LoadModule dav_module modules/mod_dav.so
LoadModule auth_module modules/mod_auth.so
LoadModule dav_fs_module modules/mod_dav_fs.so
DAV svn
SVNPath C:/Svn/imove
#AuthType Basic
#AuthName “Subversion iMove repository”
#AuthUserFile C:/Svn/svn-auth-file
#Require valid-user
#AuthzSVNAccessFile C:/Svn/svn-acl
Funciona legal, porem se eu tiro o # das linhas da erro quando tento restartar o apache:
Erro especifico do servico: 1
Digite HELPMSG 3521.
O que pode ser ???
Obrigado.
2 Trackbacks
[...] na documentação do projeto Trac e 2º) o ambiente onde vamos instalar o Trac já possui o Subversion instalado e configurado com [...]
[...] entrarei em detalhes sobre a instalação do apache porque você pode obter estas informações no tutorial de instalação do subversion. O que cabe detalhar agora é que assim como acontece com outras linguagens, tais como php, ruby e [...]