Instalación y migración de GLPI de local a hosting compartido

GLPI corresponde a las siglas Gestion Libre de Parc Informatique en francés. Se trata de un CMS con licencia GPL desarrollado en PHP que ofrece la gestión del inventario informático de una empresa u organización. Además, incluye un sistema de gestión de incidencias sobre los mismos a través de tickets o helpdesk.
Ofrece la gestión de inventario de equipos, servidores, periféricos, consumibles, licencias de software e incluso topología de red. Por otra parte, el sistema helpdesk permite abrir tickets, gestionarlos (en espera, en curso, cerrada…) y hacer un seguimiento de estos así como vincular intervenciones realizadas a equipos o usuarios.
Esta documentación corresponde a una práctica del módulo Implantación de Aplicaciones Web de 2º de ASIR. En ella se requiere instalar un CMS escrito en PHP en un entorno de desarrollo y desplegarlo en un hosting compartido.
Instalación en una máquina local de Vagrant
Partimos de una máquina Vagrant con Debian Jessie a la que accedemos mediante la ejecución del comando vagrant ssh
y en la que instalaremos un entorno LAMP.
sudo su
ejecutamos:
1 2 3 4 |
apt-get update apt-get install apache2 apt-get install php5 apt-get install mysql-server |
El comprimido de GLPI en su versión 0.90 lo descargamos desde su sitio web oficial. En mi caso lo descargo en la máquina física, por si por cualquier motivo quiero borrar la máquina Vagrant y conservar el archivo. scp -pr glpi-0.90.tar.gz vagrant@IPLocalVagrant:
copiará los archivos con las propiedades originales (fecha de modificación, último acceso…) a la máquina Vagrant.
Descomprimimos, movemos el directorio glpi a /var/www/html, cambiamos permisos, movemos los ficheros al directorio principal y renombramos el index.html que Apache instala por defecto:
1 2 3 4 5 6 |
vagrant@GLPI:~$tar -xzvf glpi-0.90.tar.gz vagrant@GLPI:~$ sudo su root@GLPI:/home/vagrant# mv glpi /var/www/html root@GLPI:/home/vagrant# chown -R www-data:www-data /var/www/html root@GLPI:/home/vagrant# mv /var/www/html/glpi/* /var/www/html root@GLPI:/home/vagrant# mv /var/www/html/index.html /var/www/html/index-bk.html |
A continuación, accedemos a la dirección IP de nuestra máquina Vagrant a través de un navegador web donde podremos comenzar el proceso de instalación. Al llegar a la pantalla de comprobación de los requisitos y compatibilidad de nuestro entorno para ejecutar GLPI observamos dos errores y una advertencia:
- Debe instalar la extensión MySQL Improved para PHP. El error se produce porque falta módulo de PHP que permite la conexión con el sistema de base de datos MySQL. Instalamos php5-mysql con el comando
apt-get install php5-mysql
- No está instalada la extensión GD de su intérprete PHP. La extensión GD de PHP es una biblioteca para el tratamiento de imágenes por parte de PHP. Se solventa instalando php5-gd con
apt-get install php5-gd
. - Web access to the files directory, should not be allowed. Check the .htaccess file and the web server configuration.. Se trata de una recomendación de seguridad a través del archivo .htaccess que no impide la instalación. En /etc/apache2/apache2.conf buscamos la regla
<Directory /var/www/>
y en la líneaAllowOverride
reemplazamosNone
porAll
.
Tras cualquiera de estos cambios debemos reiniciar el servicio apache con /etc/init.d/apache2 restart
.
Conexión con la BBDD y el servidor MySQL
En la siguiente pantalla nos pedirá información sobre la base de datos. Para ello, debemos crear las credenciales desde la terminal de comandos de MySQL así como la base de datos a utilizar.
1 2 3 4 5 6 7 8 9 |
vagrant@GLPI:~$ mysql -u root -p mysql> create database glpicms; Query OK, 1 row affected (0.00 sec) mysql> use glpicms; Database changed mysql> CREATE USER 'glpi'@'localhost' IDENTIFIED BY 'glpi123'; Query OK, 0 rows affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON glpicms.* TO 'glpi'@'localhost'; Query OK, 0 rows affected (0.00 sec) |
En el proceso de instalación, introducimos los datos de acceso creados:
El mismo proceso permite crear una nueva base de datos desde el frontend o utilizar la anteriormente creada. Ambas fórmulas crearán los usuarios: glpi, tech, normal y post-only con distintos permisos sobre GLPI.
Se requiere cambiar las contraseñas de estos nuevos usuarios y eliminar el archivo install/install.php.
Migración a un hosting compartido de DonDominio
En mi caso, utilizaré un hosting compartido en la empresa española DonDominio. Como inconveniente, esta empresa no permite personalizar ni el nombre de usuario ni el nombre de la base de datos a crear, por lo que deberemos cambiar estos parámetros a la hora de realizar la migración.
Antes de todo, voy a crear una cuenta FTP para el CMS, así como un directorio en el hosting compartido. Esto no sería necesario hacerlo en un despliegue real, pues podríamos utilizar la cuenta FTP por defecto y el directorio raíz.
Instalamos lftp y utilizamos el comando lftp -u glpi.nombredominio.com www.nombredominio.com
o bien lftp usuario@www.nombredominio.com
. Seguidamente nos ubicamos en el directorio /var/www/html de nuestra máquina vagrant con el comando lcd /var/www/html
y ejecutamos mirror -R .
para hacer una copia recursiva al servidor.
Ahora, para exportar la base de datos tenemos varias opciones: instalar phpMyAdmin y acceder desde nuestro ordenador físico, hacer uso de mysqldump y subirlo a FTP para luego descargarlo o hacer uso de mysqldump y luego copiarlo con scp a nuestra máquina física.
En Vagrant ejecutamos mysqldump -p --user=root glpicms > glpi.sql
y, desde una terminal de nuestra máquina física, scp -pr vagrant@IPvagrant:/glpi.sql .
para copiar el backup de la base de datos.
El siguiente paso es importar nuestra base de datos y realizar los cambios. En DonDominio solo ofrecen phpMyAdmin para realizar tareas con las BBDD, una vez allí pulsamos sobre «Importar».
El fichero de configuración de la conexión con la base de datos de GLPI se encuentra en la ruta config/config_db.php, allí los parámetros son los siguientes:
1 2 3 4 5 6 7 8 |
<?php class DB extends DBmysql { var $dbhost = 'localhost'; var $dbuser = 'glpi'; var $dbpassword= 'contraseña'; var $dbdefault = 'glpicms'; } ?> |
Estos debemos de cambiarlos por los del hosting compartido, el cual varía según la empresa e incluso el plan contratado. En DonDominio, el nombre de usuario y el nombre de la base de datos
coinciden.
1 2 3 4 5 6 7 8 |
<?php class DB extends DBmysql { var $dbhost = 'localhost'; var $dbuser = 'ddb11111'; var $dbpassword= 'contraseña'; var $dbdefault = 'ddb11111'; } ?> |
Tras cambiar este único archivo, GLPI funcionará correctamente con la base de datos importada ya que no hace uso de rutas absolutas o parámetros de URL insertados en la propia base de datos.
Instalar un plugin en GLPI
Continuando con el testeo del sistema open source GLPI y el entorno de desarrollo-producción, instalaremos un plugin de GLPI en la máquina Vagrant.
Accedemos a http://plugins.glpi-project.org/. Allí encontramos variedad de plugins o complementos según su funcionalidad.
En mi caso descargo el complemento de Dashboard cuyo nombre de paquete es GLPI-0.8.5-dashboard_plugin-0.6.8.tar.gz. Este lo descargamos en la máquina Vagrant con el comando wget https://forge.glpi-project.org/attachments/download/2108/GLPI-0.8.5-dashboard_plugin-0.6.8.tar.gz
para luego descomprimirlo con tar -xzvf GLPI-0.8.5-dashboard_plugin-0.6.8.tar.gz
.
Seguidamente cambiamos el usuario y grupo propietario por www-data (chown -R www-data:www-data /var/www/html/plugins/dashboard/
). En el backend de GLPI aparece la opción de instalar y activar este plugin a través del menú Configuración>Complementos.
Hola, muy buena explicacion, pero tengo un problema, tengo 2 servidores, en 1 ya esta corriendo el glpi incluso manda correos , pero levante un servidor de pruebas en base a la primera , pero el problema es que en el servidor de pruebas no puedo mandar correos , comparé y vi que en el servidor de desarrollo aparecia el «Web access to the files directory, should not be allowed. Check the .htaccess file and the web server configuration.» e hize lo que tu blog mostro y se arreglo , mas sigue sin mandar correos :c , si esque supieses como arreglar ese problema me gustaria que lo comuniques.
Gracias de antemano.
Hola Angel,
Solo realicé una instalación de prueba pues era para un módulo del Ciclo que estudio, ¡siento no poder ayudarte!.