Instalar subversion en cPanel - EasyApache4

Instalar subversion y trac en servidor cPanel
Lo primero que realizaremos es revisar si está instalado el módulo DAV en el servidor web Apache:
 
httpd -M | grep dav

Si devuelve una salida de este tipo es que ya está instalado. En caso contrario procederemos a instalar el módulo DAV mediante EasyApache4:
mod_dav
mod_dav_fs
Instalamos en línea de comandos ea-apache24-devel:
yum install ea-apache24-devel
 
Instalación Módulo DAV SVN

A través del gestor yum instalamos el paquete subversion y sqlite:
 
yum install subversion sqlite sqlite-devel

Nos descargamos la última versión de subversion correspondiente a la rama antes instalada (normalmente 1.7 en CentOS 7) y la instalamos. Atención a la versión de httpd que indicamos en la ruta del comando configure:
cd /root/downloads/subversion
 wget http://archive.apache.org/dist/subversion/subversion-1.7.14.tar.gz
tar -zxf subversion-1.7.14.tar.gz
cd subversion-1.7.14
./configure --with-apxs=/usr/bin/apxs
make
make install
Volvemos a comprobar si se ha instalado el módulo DAV:

httpd -M | grep dav

Indicamos en los ficheros de configuración de Apache que cargue los módulos DAV. Para ello vamos al WHM y en la sección "Apache Configuration" / "Include Editor", en la sección "Pre Main Configuration" añadimos estas líneas:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
Creación del repositorio

En primer lugar crearemos una configuración especial a nivel de apache para el sitio web que utilizará subversion. Para ello, si no existen, creamos varios directorios. En donde indica NOMBRE_USUARIO pondremos el nombre del usuario cPanel al crear la cuenta a través de WHM (normalmente utilizaremos el usuario svnu):
mkdir /etc/httpd/conf/userdata
mkdir /etc/httpd/conf/userdata/std
mkdir /etc/httpd/conf/userdata/std/2_4
mkdir /etc/httpd/conf/userdata/std/2_4/NOMBRE_USUARIO 
Creamos un fichero de configuración personalizado:
cd /etc/httpd/conf/userdata/std/2_4/NOMBRE_USUARIO
vi svn.conf
El contenido del fichero será:
<IfModule mod_dav_svn.c>
 <location /svn>
    DAV svn
    SVNPath /home/NOMBRE_USUARIO/repo/NOMBRE_REPOSITORIO/
    AuthType Basic
    AuthName "SVN Repo"
    AuthUserFile /home/NOMBRE_USUARIO/.svn.htpasswd
    Require valid-user
 </location>
</IfModule>
Por último creamos el/los usuarios de acceso y el repositorio:
su NOMBRE_USUARIO
cd ~/
htpasswd -cm .svn.htpasswd <svnuser>
mkdir repo
cd repo
svnadmin create NOMBRE_REPOSITORIO
chmod 775 -R NOMBRE_REPOSITORIO
chown -R NOMBRE_USUARIO.nobody /home/NOMBRE_USUARIO/repo
exit
Si  más adelante queremos añadir usuarios de acceso al repositorio. Ejecutaremos:
su NOMBRE_USUARIO
cd ~/
htpasswd -m .svn.htpasswd <svnuser>
Actualizamos apache para que coja la nueva configuración:
/scripts/ensure_vhost_includes --user=NOMBRE_USUARIO
/scripts/rebuildhttpdconf
/scripts/restartsrv_httpd
http://www.NOMBRE_DOMINIO.COM/svn

Instalar cliente subversion en Eclipse:

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=svnSubversive

Instalación de Trac

En primer lugar instalaremos los paquetes python y python-setuptools:
 
 
yum install python python-setuptools
 

A continuación instalamos trac (instala dependencias como Genshi):
 
easy_install Trac

Una vez instalado, crearemos el repositorio trac (suponiendo que utilizamos el mismo directorio de usuario que para subversion /home/NOMBRE_USUARIO):
 
su NOMBRE_USUARIO
cd ~/
mkdir trac
 
trac-admin /home/svnu/trac/NOMBRE_REPOSITORIO initenv
chown -R NOMBRE_USUARIO.nobody /home/NOMBRE_USUARIO/trac
exit

Trac puede ser configurado para ejecutarse como un servicio más que se ejecuta sobre el puerto 8000 o conectarse a un servidor web como Apache. Según el manual de instalación, si utilizamos FastCGI para conectar trac con apache, es necesario crear los directorios de "deploy".
 
 
trac-admin /home/NOMBRE_USUARIO/trac/NOMBRE_REPOSITORIO/ deploy /tmp/deploy
mv /tmp/deploy/* /home/svnu/trac/
chown -R NOMBRE_USUARIO.nobody /home/NOMBRE_USUARIO/trac
chmod 755 /home/NOMBRE_USUARIO/trac/cgi-bin/trac.fcgi

El último paso es crear la conexión Apache-Trac. Como suponemos que estamos utilizando el mismo subdominio que para subversion, editamos el fichero de configuración personalizado anterior:
 
cd /etc/httpd/conf/userdata/std/2/NOMBRE_USUARIO
vi svn.conf

Al final del fichero añadiremos este contenido:
 
 
# INICIO TRAC

Alias /trac/chrome/common /home/NOMBRE_USUARIO/trac/htdocs/common
Alias /trac/chrome/site /home/NOMBRE_USUARIO/htdocs/site

<Directory "/home/NOMBRE_USUARIO/trac/htdocs">
  Order allow,deny
  Allow from all
</Directory>

  <Location /trac/login>
        AuthType Basic
        AuthName "Trac Login"
        AuthUserFile /home/NOMBRE_USUARIO/trac/.htpasswd
        Require valid-user
    </Location>

ScriptAlias /trac /home/NOMBRE_USUARIO/trac/cgi-bin/trac.fcgi/
 

Por último creamos el/los usuarios de acceso y el repositorio:
 
su NOMBRE_USUARIO
cd ~/
cd trac
/usr/local/apache/bin/htpasswd -cm .htpasswd <svnuser>
chown -R NOMBRE_USUARIO.nobody /home/NOMBRE_USUARIO/trac
exit

Si  más adelante queremos añadir usuarios de acceso al repositorio. Ejecutaremos:
 
su NOMBRE_USUARIO
cd ~/
cd trac
/usr/local/apache/bin/htpasswd -m .htpasswd <tracuser>

Actualizamos apache para que coja la nueva configuración:
 
/scripts/ensure_vhost_includes --user=NOMBRE_USUARIO
/scripts/rebuildhttpdconf
/scripts/restartsrv_httpd

Probamos el acceso a través de la URL Si pinchamos sobre el enlace de "Login" nos pedirá usuario/contraseña creado por comando htpasswd):

http://www.NOMBRE_DOMINIO.COM/trac

Trac se configura a través de un fichero de configuración localizado en /home/NOMBRE_USUARIO/trac/NOMBRE_REPOSITORIO/conf/trac.ini.

Adjuntamos un ejemplo de fichero trac.ini instalado en el servidor de InvierterMe (logo personalizado y algún plugin adicional instalado). Fichero trac.ini

Más información:

Instalación General:
http://trac.edgewall.org/wiki/TracInstall

Conexión Trac-Apache:
http://trac.edgewall.org/wiki/TracInstall#RunningTraconaWebServer
http://trac.edgewall.org/wiki/TracFastCgi#Setupwithmod_fcgid

Autenticación de usuarios:
http://trac.edgewall.org/wiki/TracInstall#ConfiguringAuthentication
http://trac.edgewall.org/wiki/TracModWSGI#ConfiguringAuthentication

Add Feedback