Pergunta

Eu tenho um laptop rodando Ubuntu que gostaria de atuar como servidor Subversion.Tanto para mim me comprometer localmente, quanto para outros remotamente.Quais são as etapas necessárias para que isso funcione?Inclua etapas para:

  • Obtenha e configure o Apache e os módulos necessários (sei que existem outras maneiras de criar um servidor SVN, mas gostaria que fosse específico do Apache)
  • Configure uma forma segura de acessar o servidor (SSH/HTTPS)
  • Configure um conjunto de usuários autorizados (por exemplo, eles devem estar autorizados a confirmar, mas podem navegar livremente)
  • Valide a configuração com um commit inicial (uma espécie de "Olá, mundo")

Essas etapas podem envolver qualquer combinação de instruções de linha de comando ou de aplicativo GUI.Se possível, observe onde as instruções são específicas para uma distribuição ou versão específica e onde a escolha de uma ferramenta específica pelo usuário pode ser usada (por exemplo, nano em vez de vi).

Foi útil?

Solução

Passos que tomei para tornar meu laptop um servidor Subversion.O crédito deve ir para AlephZarro por suas direções aqui.Agora tenho um servidor SVN funcionando (que atualmente só foi testado localmente).

Configuração específica:Kubuntu 8.04 Hardy Heron

Requisitos para seguir este guia:

  • programa gerenciador de pacotes apt-get
  • editor de texto (eu uso Kate)
  • direitos de acesso sudo

1:Instale o servidor Apache HTTP e os módulos necessários:

sudo apt-get install libapache2-svn apache2

Os seguintes pacotes extras serão instalados:

apache2-mpm-worker apache2-utils apache2.2-common

2:Habilitar SSL

sudo a2enmod ssl
sudo kate /etc/apache2/ports.conf

Adicione ou verifique se o seguinte está no arquivo:

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

3:Gere um certificado SSL:

sudo apt-get install ssl-cert
sudo mkdir /etc/apache2/ssl
sudo /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

4:Criar host virtual

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/svnserver
sudo kate /etc/apache2/sites-available/svnserver

Mudança (em ports.conf):

"NameVirtualHost *" to "NameVirtualHost *:443"

e (no svnserver)

<VirtualHost *> to <VirtualHost *:443>

Adicione, em ServerAdmin (também no arquivo svnserver):

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM

5:Habilite o site:

sudo a2ensite svnserver
sudo /etc/init.d/apache2 restart

Para superar os avisos:

sudo kate /etc/apache2/apache2.conf

Adicionar:

"ServerName $your_server_name"

6:Adicionando repositório(s):A configuração a seguir pressupõe que queremos hospedar vários repositórios.Execute isto para criar o primeiro repositório:

sudo mkdir /var/svn

REPOS=myFirstRepo
sudo svnadmin create /var/svn/$REPOS
sudo chown -R www-data:www-data /var/svn/$REPOS
sudo chmod -R g+ws /var/svn/$REPOS

6.a.Para mais repositórios:faça o passo 6 novamente (alterando o valor de REPOS), pulando o passo mkdir /var/svn

7:Adicione um usuário autenticado

sudo htpasswd -c -m /etc/apache2/dav_svn.passwd $user_name

8:Habilite e configure WebDAV e SVN:

sudo kate /etc/apache2/mods-available/dav_svn.conf

Adicione ou remova o comentário:

<Location /svn>
DAV svn

# for multiple repositories - see comments in file
SVNParentPath /var/svn

AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
SSLRequireSSL
</Location>

9:Reinicie o servidor Apache:

sudo /etc/init.d/apache2 restart

10:Validação:

Abra um navegador:

http://localhost/svn/$REPOS
https://localhost/svn/$REPOS

Ambos exigiam nome de usuário e senha.Acho que descomentando:

<LimitExcept GET PROPFIND OPTIONS REPORT>

</LimitExcept>

em /etc/apache2/mods-available/dav_svn.conf, permitiria a navegação anônima.

O navegador mostra "Revisão 0:/"

Comprometa algo:

svn import --username $user_name anyfile.txt https://localhost/svn/$REPOS/anyfile.txt -m “Testing”

Aceite o certificado e digite a senha.Confira o que você acabou de cometer:

svn co --username $user_name https://localhost/svn/$REPOS

Seguindo essas etapas (supondo que não cometi nenhum erro ao copiar/colar), eu tinha um repositório SVN funcionando em meu laptop.

Outras dicas

Depois, precisei executar (dentro do contexto do exemplo citado acima)

$ sudo chmod g+w /var/svn/$REPOS/db/rep-cache.db

$ sudo chown www-data:www-data /var/svn/$REPOS/db/rep-cache.db

Caso contrário, continuei recebendo um erro 409 ao cometer modificações locais (embora os compromissos fossem eficazes do servidor, eu precisava acompanhar as atualizações locais)

Este artigo parece fornecer um bom resumo de todo o processo.Eu recomendaria seguir as instruções e, em seguida, postar algumas perguntas mais específicas sobre quaisquer problemas que você encontrar e que não sejam abordados nos artigos aos quais eu e outras pessoas vinculamos nessas respostas.

Se você receber 403 proibido ao acessar o servidor web, pode ser porque você usou um nome de host que não é o que você especificou em seu arquivo de configuração (ou seja, localhost ou 127.0.0.1).Tente bater https://whateveryouseasyourhostname em vez de...

Por favor, escreva um único comando no terminal.

Para abrir o terminal, pressione Ctrl + Alt. + T, e digite este comando:

$sudo apt-get install subversion

Para Apache:

sudo apt-get -yq install apache2

Para SSH:

sudo apt-get -yq install openssh-server

Para Subversão:

sudo apt-get -yq install subversion subversion-tools

Se desejar, você pode combiná-los em um comando como:

sudo apt-get -yq install apache2 openssh-server subversion subversion-tools

Não posso ajudar com o resto...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top