Instalando e configurando o Subversion (SVN) no servidor BlueHost VPS (CentOS)
Meus passos são apenas o acompanhamento deste belo artigo wiki no link . O artigo tem 8 etapas gerais, no entanto, para instalação no BlueHost VPS, é necessária uma expansão para o passo 3 e o passo 4.2
Etapa 3 - Ao instalar o yum install mod_dav_svn subversion
, ocorrerá um erro
Error: Missing Dependency: httpd-mmn = 20051115 is needed by package mod_dav_svn
Para resolver isso, siga as etapas abaixo
[$] find / -name "yum.conf" --- Note the path
[$] vim /path/yum.conf --- Edit the file
Remova o httpd*
da seguinte linha
exclude=apache* bind-chroot courier* dovecot* exim* filesystem httpd* mod_ssl* mydns* mysql* nsd* perl* php* proftpd* pure-ftpd* ruby* spamassassin* squirrelmail*
Salve e saia do arquivo :wq!
[$] yum install mod_dav_svn subversion --- If Success, then you can revert back yum.conf file to its original.
Etapa 4 - Antes de prosseguir para esta etapa, crie um domínio ou subdomínio (svn.domain.com) de preferência, e atribuí-lo a qualquer pasta (principalmente /home/username/public_html/svn.domain.com)
/home/username/public_html/svn.domain.com --- will be main folder under which I will have many repositories (not just one, but many)
Passo 4.1 - Ignore este passo do artigo, uma vez que a BlueHost terá os seus cuidados
Step 4.2 - Por padrão, o Subversion criará um arquivo .conf chamado subversion.conf
in /etc/httpd/conf.d/subversion.conf
Para o BlueHost, quaisquer arquivos nesse caminho são ineficientes (levei quatro horas para descobrir) porque ele usa o C-Panel, que tem seu próprio requisito para seguir - > link
Então edite o arquivo /etc/httpd/conf/httpd.conf
na sua edição favorita
[$] vim /etc/httpd/conf/httpd.conf' --- Edit the main Apache config file
[Editor] /svn.domain.com --- Hit Enter and search for your domain configurations, scroll through up or down keys or n for next hit
Logo acima do svn.domain.com, você encontrará algo semelhante às linhas abaixo
# To customize this VirtualHost use an include file at the following location
#Include "/usr/local/apache/conf/userdata/std/2/username/svn.domain.com/*.conf"
Remova o comentário da inclusão removendo o hash (#) no início e
Copie o caminho entre o Include até * .conf (remove * .conf) e cole como abaixo no comando mkdir
[$] mkdir -p /usr/local/apache/conf/userdata/std/2/username/svn.domain.com/ --- Creates all parents directory as well if they don't exist
[$] vim /usr/local/apache/conf/userdata/std/2/username/svn.domain.com/subversion.conf --- Create subversion configuration file
No arquivo subversion.conf
no modo de edição (pressione i) cole abaixo
e gentilmente alterar o caminho de SVNParentPath
e AuthUserFile
conforme necessário
Por favor note que DocumentRoot nas configurações do VirtualHost e SVNParentPath no subversion.conf não pode ter o mesmo caminho de diretório. O SVNParentPath deve substituir ou estar localizado em um diretório diferente, não pode estar sob o caminho DocumentRoot.
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location />
DAV svn
SVNParentPath /home/username/public_html/svn.domain.com/
SVNListParentPath ON
AuthType Basic
AuthName "DFR Visualization Images Repository"
AuthUserFile /home/username/public_html/svn.domain.com/svn-auth-conf
Require valid-user
</Location>'
Agora, :wq!
, salve e saia do arquivo.
Agora execute os comandos abaixo para criar o arquivo de autenticação no caminho mencionado na variável AuthUserFile
no arquivo subversion.conf
No comando htpasswd use o argumento -cm para a primeira criação de usuários e para usuários subseqüentes apenas use -m, senão os dados dos usuários anteriores serão perdidos
[$] htpasswd -cm /home/username/public_html/svn.domain.com/svn-auth-conf username --- Press enter and input password
Mais um último passo. Por padrão, o Subversion instala os módulos necessários para carregar o SVN para funcionar corretamente no diretório apropriado, mas como o BlueHost usa o C-Panel, ele possui um diretório diferente para o mesmo propósito, o qual o Subversion não perceberá.
Portanto, precisamos copiar manualmente os módulos do Subversion instalados no diretório do módulo padrão para o diretório de módulos do C-Panel.Primeiro encontre onde o Subversion foi instalado após dois módulos que especificamos no arquivo subversion.conf
[$] find / -name "mod_dav_svn.so" --- Find and note subversion installation path
[$] find / -name "mod_authz_svn.so" --- Find and note subversion installation path
Copie-os para a pasta de módulos do C-Panel (geralmente /usr/local/apache/modules/
), gentilmente verifique o caminho antes de copiar.
[$] cp /subversion_modules_path/mod_dav_svn.so /usr/local/apache/modules/
[$] cp /subversion_modules_path/mod_authz_svn.so /usr/local/apache/modules/
Agora entre no seu C-Panel de bluehost e reinicie o serviço Apache localizado em
C-Panel -> WHM -> Restart Services -> HTTP Server (Apache)
Siga os passos restantes, como no artigo.