Instalar Bugzilla en Bluehost

Siguiendo el proceso de selección de sistema de registro de problemas y soluciones de software le llegó el turno a Bugzilla.

Según la documentación es el mejor sistema de registro de bugs de código abierto. El único problema que le veo es que está escrito en perl que no es un lenguaje optimizado para la Web a menos de que se afine el servidor Web para utilice algo como mod_perl.

Aunque no me gustan los programas escritos en Perl, abrí la documentación de bugzilla (http://www.bugzilla.org/docs/3.2/en/html/installation.html) e instalé el paquete y a continuación están los pasos que seguí para lograr que funcionara.

1. Crear subdominio y descargar Bugzilla
En mi caso primero cree un subdominio llamado bt (Bug Tracker) en el panel control de bluehost. Esto me crea una nueva carpeta en ~/public_html/bt

Luego se debe ingresar por ssh al servidor, ubicarse en en ~/public_html/bt, descarguar Bugzilla y descomprimirlo

El enlace simbólico es para que al descomprimir los archivos estos queden ubicados en el directorio en el que se está actualmente. Esto ahorra el tener que mover los archivos después

2. Verificar que módulos de Perl hay que instalar
Para esto se utiliza

./checksetup.pl --check-modules

Como se puede ver hay que instalar

Chart::Base
Template::Plugin::GD::Image
XML::Twig
MIME::Parser
PatchReader
Authen::SASL
Authen::Radius
HTML::Scrubber
Email::MIME::Attachment::Stripper
Email::Reply

3. Instalar módulos de perl
Aquí viene la diferencia en bluehost. Bluehost tiene en su panel de control (cPanel) un módulo para la instalación de módulos de perl ya que por la línea de comándos esta instalación presenta problemas al no tener acceso a la instalación global de perl (para esto necesitaríamos acceso como superusuarios).

Aquí estaríamos instalando MIME::Parser

4. Modificar scripts para incluir los módulos locales
Los módulos instalados en el paso anterior quedan en una ruta en la que el interprete de Perl no busca automáticamente (~/perl). Es por esto que se deben modificar los archivos checksetup.pl, testserver.pl, index.cgi y Bugzilla.pm agregando la nueva ruta.

Aquí se puede ejecutar nuevamente ./checksetup.pl para verificar que no hay más módulos que instalar, lo que significa que los módulos locales fueron encontrados e integrados

5. Configuración de localconfig
En el paso anterior se ejecutó dos veces checksetup.pl. La segunda vez, después de haber instalado los módulos necesarios, se debió haber creado el archivo localconfig. En este archivo es donde se debe especificar los datos de acceso de la base de datos a utilizar y los permisos de los archivos a crear.

La configuración de la base de datos se encuentra en las variables $db_driver, $db_host, $db_name, $db_user y $db_pass. Es solo cuestión de agregar los valores correctos a las variables

En cuento a los permisos, es cuestión de cambiar el valor de la variable $webservergroup por el grupo bajo el cual corre apache en el servidor. Para bluehost este grupo es el mismo nombre de usuario que se utilizó para ingresar por ssh al servidor.

6. Creación de la base de datos
Aquí bluehost también tiene un módulo en su cPanel.

Se debe crear la base de datos, crear el usuario y luego darle acceso total al usuario a la nueva base de datos.

Luego de esto, se debe ingresar nuevamente por ssh al servidor, ubicarse en el directorio donde quedó instalador Bugzilla y ejecutar nuevamente checksetup.pl. Si los datos de conexión de la base de datos eran correctos, se crearán las tablas de la base de datos y luego se inicará un ayudante de configuración incial.

7. Finalización
En este punto Bugzilla ya está instalado. Lo único que falta es darle permiso a todo el mundo para que ejecute los scripts de perl que están en el directorio ~/public_html/bt. Estos son los comando necesarios


cd ~/public_html/bt
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;

Y eso es todo. Solo hay que entrar a http://subdominio.dominio.com/bt para ver la pantalla de bienvenida de Bugzilla.

Hay que anotar que quedan faltando algunas configuraciones, pero estas se hacen directamente en bugzilla mediante navegador.