1. SVN Client / Tourtoise
O TortoiseSVN é desenvolvido pela Tigris.org, um consórcio que desenvolve soluções open source. Este software é classificado como "Windows Explorer Shell Extension", e uma vez instalado, acrescenta uma opção do menu contextual do Windows Explorer (menu exibido com o clique do botão direito do mouse) apresentando todas as tarefas de controle de versão poderá executar.
Essa ferramenta é muito prática, devido sua integração com o Windows Explorer. Se preferir, pode utilizar um client de linha de comando.
Esse documento não irá detalhar os recursos e funcionalidades do Tortoise, mas sim como configurar o sistema para utilizar o certificado client automaticamente.
Devido ao VisualSVN Server estar configurado para exigir uma conexão SSL e, consequentemente, solicitar um certificado de cliente, em toda operação que exigir leitura ou escrita no repositório svn, o tortoise irá apresentar um dialog solicitando que você informe o caminho onde o certificado client (arquivo .pfx) encontra-se e, posteriormente, a senha de proteção deste certificado.
Para evitar que tortoise sempre solicite o certificado será necessário modificar o arquivo de configuração do subversion (servers). Esse arquivo está localizado em %APPDATA%\Subversion sob o nome “servers” (não possui extenção).
O diretório %APPDATA% é relativo ao sistema operacional, ao idioma do sistema operacional e ao usuário logado. Por exemplo, se você estiver usando Windows XP, uma possível de localização é: C:\Documents and Settings\lovatof\Application Data\Subversion.
Em caso de dúvida, basta digitar %APPDATA% [ENTER] no Windows Explorer e ele expandirá essa variável de ambiente para o correspondente valor.
Abra o arquivo “servers” e localize a linha onde aparece “[groups]”.
O trecho abaixo é um exemplo de configuração que você pode utilizar como base.
[groups]
flovatosvn = flovatosvn.myserver.com.br
local = localhost
[flovatosvn]
ssl-client-cert-file = C:\Program Files\VisualSVN Server\bin\Cert\Fabius.pfx
ssl-client-cert-password = [minha senha]
ssl-trust-default-ca = yes
http-compression = yes
http-timeout = 300
[local]
ssl-client-cert-file = C:\Program Files\VisualSVN Server\bin\Cert\Fabius.pfx
ssl-client-cert-password = [Minha Senha]
ssl-trust-default-ca = yes
http-compression = yes
http-timeout = 300
flovatosvn = flovatosvn.myserver.com.br
local = localhost
[flovatosvn]
ssl-client-cert-file = C:\Program Files\VisualSVN Server\bin\Cert\Fabius.pfx
ssl-client-cert-password = [minha senha]
ssl-trust-default-ca = yes
http-compression = yes
http-timeout = 300
[local]
ssl-client-cert-file = C:\Program Files\VisualSVN Server\bin\Cert\Fabius.pfx
ssl-client-cert-password = [Minha Senha]
ssl-trust-default-ca = yes
http-compression = yes
http-timeout = 300
Em “[groups]” foi acrescentado a definição de dois grupos (flovatosvn e local). Isso significa que quando o svn client (no caso o tortoise) for acessar um repositório svn utilizando o endereço localhost (por exemplo: https://localhost:8443/svn) deverá ser utilizado as configurações do grupo “local”. O mesmo vale para o grupo “flovatosvn”.
O item “ssl-client-cert-file” define a localização completa do certificado de cliente que deve ser utilizado para a autenticação. Nesse caso, modifique esse parâmetro para refletir a condição definida em seu ambiente de trabalho.
O item “ssl-client-cert-password” é utilizado para armazenar a senha de proteção do certificado. Particularmente eu não recomendo ignorar esse item de configuração por questões de segurança. No entanto, se não for especificado o tortoise irá solicitar tal senha sempre que um acesso ao repositório for realizado.
2. PHP
O suporte ao PHP é um requisito para o funcionamento do WebSVN que será abordado no capítulo abaixo. Além disso, o uso do PHP pode estender à outros frameworks ou mesmo implementações internas.
As etapas abaixos descreve o que deve ser feito a instalação/configuração do PHP5 no Windows 7 com foco ao VisualSVN Server, no entanto esse mesmo passo-a-passo pode ser utilizado (como uma ou outra diferença) para a instalação em outra versão do MS Windows e/ou com foco no Apache.
2.1 Instalação
No site http://br.php.net/ você encontra informações mais detalhadas sobre o PHP. No nosso tutorial utilizaremos a versão mais recente e estável disponível (verão 5.2.11). Se desejar, faça o download pelo link direto.
Crie uma pasta chamada “PHP” em %ProgramFiles% (C:\Program Files\PHP) e descompacte a instalação para essa pasta.
2.2 Configurando o PHP
a) No diretório de instalação do PHP (%ProgramFiles%\PHP), copie o arquivo php5ts.dll para a pasta bin do diretório de instalação do VisualSVN Server (%ProgramFiles%\VisualSVN Server\bin). Se você preferir pode copiá-lo para a pasta system32 do Windows (%WINDIR%\system32) como a maioria dos tutoriais recomendam.
A finalidade é tornar acessível tal arquivo acrescentando-o em um local “visível” ao servidor http(s). Não cheguei a testar, mas acredito que simplesmente acrescentando a pasta C:\Program Files\PHP no system path tenha o mesmo efeito.
b) Também no diretório de instalação do PHP você encontra o arquivo “php.ini”. Abra-o e localize a linha onde aparece extension_dir = “./” e modifique para extension_dir = “c:/Program Files/PHP/ext/”, que é o caminho complato do diretório onde ficam as extensões do php (GD, MySQL, Postgres, ...).
c) Caso você tenha instalado MySQL, PostgresSQL, ou outro banco de dados e deseje acessá-los) via PHP, localize, por exemplo, a linha onde aparece ;extension=php_mysql.dll e remova o caracter ponto-e-vírgula (;). Esse caracter tem funcionalidade de comentário (assim como // ou /* */ em C/C++ ou { } em Delphi, ...).
Nesse exemplo, é acrescentado suporte ao MySQL, mas há diversas outras extensões que também estão comentadas, bastando remover o caracter de comentário (;).
d) Seguindo o passo anterior, habilite suporte ao módulo “php_openssl.dll”.
e) O arquivo de configuração do PHP (php.ini) possui muitos parâmetros que permite a customização. Assim, depois de feitas as devidas alterações, salve o arquivo e mova-o para a pasta "conf" do diretório de instalação do VisualSVN (C:\Program Files\VisualSVN\conf).
Aqui a situação é a mesma, o objetivo é tornar o arquivo "visível" ao servidor web. Se preferir, pode mover o php.ini para o diretório de instalação do Windows (%WINDIR%), como é recomendado pela maioria dos guias de instalação.
2.3. Suporte ao PHP no VisualSVN Server
No arquivo httpd-custom.conf, acrescente as seguintes linhas:
LoadModule php5_module "C:/Program Files/PHP/php5apache2_2.dll"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
# configure the path to php.ini
PHPIniDir "C:/Program Files/PHP"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
# configure the path to php.ini
PHPIniDir "C:/Program Files/PHP"
No arquivo httpd.conf, localize a linha onde aparece “<ifmodule dir_module>” e modifique a instrução Directoryindex como aparece abaixo.
<ifmodule dir_module>
DirectoryIndex index.html index.php default.php main.php
</ifmodule>
DirectoryIndex index.html index.php default.php main.php
</ifmodule>
Isso fará com que o servidor reconheça os arquivos index.php, default.php e main.php a um diretório aberto. Apesar desses nomes de arquivos serem largamente utilizado, não é obrigatório que utilize-os, você pode incluir inicio.php ou qualquer outro nome de sua escolha.
2.4 Testando o PHP no browser
Acrescentado a configuração acima listada, é necessório um reset o VisualSVN Server para que este inicialize o PHP.
a) Para verificar se o PHP está sendo carregado e funcionando corretamente, crie um arquivo com extensão .php (exemp: info.php) com o seguinte conteúdo:
<? phpinfo(); ?>
b) Salve esse arquivo na pasta "htdocs" do VisualSVN (%ProgramFiles\VisualSVN Server\htdocs).
c) Em seguida, abra um webbrowser e digite: https://localhost:8443/info.php. Se tudo correr bem, deve se exibido uma tela com as informações sobre a configuração do PHP:
3. WebSVN
O WebSVN, como o próprio nome sugere, é um solução open source que permite a navegação no repositório svn através de uma interface web.
É uma solução cuja proposta se assemelha em muito com ao do VisualSVN Server (no quesito web browser), mas possui uma interface melhorada e com vários recursos.
Acesse o site oficial (http://www.websvn.info/) para obter maiores detalhes.
3.1 Instalação
O processo de instalação é muito simples.
Faça o download a versão mais recente (http://www.websvn.info/download/ ) e descompacte o arquivo para uma pasta qualquer dentro de htdocs do VisualSVN (%ProgramFiles\VisualSVN Server\htdocs).
Se preferir pode deixar o diretório com o nome da pasta contida no arquivo de instalação (websvn-2.2.1), mas sugiro renomeá-lo para websvn.
3.2. Configurando o acesso ao WebSVN
Caso deseje posteriormente utilizar o WebSVN acrescente o trecho abaixo no final do arquivo (https.conf) ou, o mais recomendado, acrescente as linhas abaixo no arquivo httpd-custom.conf.
<location /websvn/>
SVNListParentPath on
SVNParentPath "D:/Repositories/SVN/"
SVNIndexXSLT "/svnindex.xsl"
AuthName "Subversion Web Browsing"
AuthType Basic
AuthBasicProvider file
AuthUserFile "D:/Repositories/SVN/htpasswd"
AuthzSVNAccessFile "D:/Repositories/SVN/authz"
Require valid-user
</location>
SVNListParentPath on
SVNParentPath "D:/Repositories/SVN/"
SVNIndexXSLT "/svnindex.xsl"
AuthName "Subversion Web Browsing"
AuthType Basic
AuthBasicProvider file
AuthUserFile "D:/Repositories/SVN/htpasswd"
AuthzSVNAccessFile "D:/Repositories/SVN/authz"
Require valid-user
</location>
OBS: O WebSVN faz uso do php para o sincronismo com o svn, além da construção dinâmica das próprias páginas. Sendo assim, é necessário que o PHP esteja instalado, conforme descrito no capítulo anterior.
Agora, resete o VisualSVN Server (ou Apache) e digite no browser: https://localhost:8443/websvn/.
Provavelmente irá aparecer a seguinte mensagem:
File "includes\config.php" does not exists, please create one. The example is located under "includes\distconfig.php"
Em %ProgramFiles%\VisualSVN Server\htdocs\websvn\include, você encontrará um arquivo chamado “distconfig.php”, faça uma cópia desse arquivo com o nome “config.php”.
Abra o arquivo config.php e acrescente a linha “$config->parentPath('D:\\Repositories\\svn');”. Logicamente, se o repositório svn em sua máquina não está localizado em D:\Repositories\svn, altere para refletir o caminho correto.
Salve o arquivo; volte ao browser e tente novamente. Voai lá.
Nenhum comentário:
Postar um comentário