Instalación de GLPI 10RC(9.5.7 stable) en debian 11 con php 8 y las últimas versiones de Nginx y MariaDB.

Tal como me sucedió la otra vez, me di cuenta que mi servicio de GLPI estaba desactualizado. Pues lo tenía en Debian 9 y una versión del mismo un tanto antigua. Por lo que me di a la tarea de revisar el sitio oficial y cual sería mi sorpresa al ver que muy pronto están al liberar la versión 10 de GLPI. Esta nueva versión incluye muchísimas mejoras, aquí les dejo un resumen.

  • Las nuevas funciones de asistencia incluyen vista Kanban para objetos ITIL, optimización de reglas comerciales y estado pendiente.
  • La nueva interfaz se basa en tabler, Bootstrap 5 y Twig, trae muchos cambios visuales. La integración de estas bibliotecas estándar facilitará el desarrollo de nuevas interfaces y, sobre todo, traerá un modo de visualización «receptivo» que es más fácil de mantener.
  • Inventario dinámico nativo (recuperación de datos de agentes de inventario)

Esta última característica es muy importante ya que dejaríamos de usar plugin de inventario tales como OCS Inventory o FusionInventory. Ya que esta vez contara con inventario nativo, una característica muy solicitada.

Para este tutorial utilizaremos como sistema operativo Debian 11 y las últimas versiones de php, nginx y mariadb. También pueden usar Ubuntu. Como en la mayoría de mis tutoriales siempre usamos proxmox como virtualizador, por lo que crearemos un contenedor con Debian 11 y las siguientes características:

  • CPU 1 cores
  • RAM 512 MB
  • SWAP 1GB
  • HDD 8GB

Actualizamos nuestro sistema operativo

Ahora vamos a instalar todas las dependencias necesarias para que nuestro GLPI funcione, para ellos vamos a revisar su sitio.

Prerequisites

GLPI is a Web application that will need:

  • a webserver;
  • PHP;
  • a database.

Web server

GLPI requires a web server that supports PHP, like:

PHP

PHP Compatibility Matrix
GLPI VersionMinimum PHPMaximum PHP
9.4.X5.67.4
9.5.X7.28.0
10.0.X7.48.1

Como se puede apreciar necesitamos un servidor web que soporte PHP y una base de datos. Por lo que usaremos un servidor LEMP lo más actualizado posible. Para ello me guiare en los tutoriales de los cuales siempre están al día.

Dependencias básicas:

GPG de Nginx y PHP:

Repositorios de Nginx, PHP y MAriaDB:

Repos de Nginx y PHP:

Repo de MariaDB:

NOTA: Debido a que el link para descargar el script de MariaDB está cerrado para Cuba hay que hacer uso de una VPN. Por suerte es pequeño así que aqui se los dejo.

Instalación de NGINX y MariaDB

Ahora vamos a mejorar la seguridad del servidor de base de datos utilizando la herramienta incluida «mysql_secure_installation». Durante una instalación inicial, no hay contraseña para root, por lo que puede confirmar la consulta con ENTER. Se recomienda establecer una contraseña, el cuadro de diálogo correspondiente aparece automáticamente:

Configurando MariaDB:

Dentro de my.cnf copiaremos el contendio de este enlace. El cual mostramos a continuacion:

Guarde y cierre el archivo y, a continuación, reinicie el servidor de base de datos:

GLPI necesita trabajar con el servicio de bases de datos, ya sea MariaDB o MySQL. Para preparar la base de datos conectamos con el cliente de consola mysql y un usuario administrador:

Hemos creado usuario y base de datos con el mismo nombre (glpi) usando la clave password(ustedes pondrían su clave)

Como las tablas de zonas horarias de MySQL no suelen estar cargadas por defecto, las cargaremos ayudándonos de la herramienta mysql_tzinfo_to_sql:

Esas advertencias durante el proceso son perfectamente normales.

Instalación de PHP 8.0 (fpm):

Como pudimos apreciar en la tabla de compatibilidad que nos da la web oficial de GLPI, las versiones 9.5 a 10 son compatibles con PHP 8.0. Por lo que instalaremos esta versión y no la 8.1 que es muy reciente. También por si les interesa y no son amantes de estar en versiones tan altas por miedo a soporte y compatibilidad les doy el comando para que si desean usar PHP 7.4 la más estable.

Ahora reinicie ambos servicios, nginx y PHP:

Comprobamos que los 3 servicios estén corriendo

Si todo esta correcto pues pasamos a descargar nuestro GLPI. Como recomendación, sería una muy buena práctica hacer una salva de nuestro contenedor.

Instalación de GLPI:

Como dice el título del tutorial les mostrare la instalación de la versión 10 RC (release candidate) del GLPI. Se que muchos dirán que al ser una versión release candidate no es estable para producción, pero el procedimiento es el mismo tanto para esta versión como para una estable. Además, pronto la versión 10 será la definitiva y este tutorial seguirá siendo efectivo. Por lo tanto, les daré las 2 opciones. Así que procederemos a descargar la versión que nos interesa instalar:

Procederemos a descompactar y ubicar nuestra web.

NOTA: Recordar que deben elegir entre una de las 2 versiones.

Procedemos a darle los permisos correspondientes

Creacion de la configuración para NGINX

Modificaremos los parámetros:

Comentar el parámetro listen 80 default_server y descomentar listen 443 ssl y todo lo relativo a la configuración SSL (<- your SSL Settings here!), si usaremos conexión segura SSL. Usando los certificados creados por ustedes o de letsencrypt.

server_name: Nombre de nuestro servidor

fastcgi_pass unix: Si usas php 8.0 (/var/run/php/php8.0-fpm.sock). Si usas php 7.4 (unix:/var/run/php/php7.4-fpm.sock)

Es el momento de instalar GLPI vía web. Para ello accedemos desde el navegador con la URL:

NOTA: Si usaron sus certificados (ssl 443) pues el enlace llevaría https://

Ahora les hablare del error php8.0-fpm.sock failed (13 permission denied) que me sucedió al querer acceder a la web de GLPI. Si al poner la URL no les abre la web y revisan los logs de NGINX y ven este error no se preocupen que es de fácil solución. El problema está dado por los permisos de usuario. PHP usa de grupo y usuario www-data y NGINX usa nginx. Si nos fijamos en la configuración del PHP viendo el contenido del fichero /etc/php/8.0/fpm/pool.d/www.conf podemos observar los permisos que vienen por defecto.

Ahí se aprecia que www-data es el usuario y el grupo y que esta escuchado por socket usando php8.0-fpm.sock como mismo definimos en la configuración de nginx. Pero NGINX usa el usuario nginx el cual no tiene permiso por eso deniega el uso de fpm. ¿Como lo solucionamos? Pues muy fácil editaremos el usuario de NGINX

Reiniciamos los servicios

Y ya podremos acceder a la URL de GLPI, donde comenzaremos el proceso de instalación vía web. Transitaremos por 6 pasos hasta completar la instalación de la web. Luego de escoger idioma y de aceptar los términos de la licencia nos saldrán las siguientes pantallas:

Como es una instalación en limpio desde 0 elegiremos instalar. Se nos mostrará la lista de requerimientos de configuración del sistema para poder instalar GLPI.

Si has seguido los pasos previos a la instalación, se mostrará una larga lista de verificaciones correctas. En caso de que faltara algo puedes solucionarlo y recargar la página.

NOTA: Podemos ignorar la advertencia de permitir acceso web al directorio de archivos y repararlo luego.

A continuación, configuramos la conexión a la base de datos:

Especificaremos la dirección del servidor de bases de datos, en nuestro caso esta local o localhost. Obviamente también introduciremos el usuario y la contraseña que creamos anteriormente.

NOTA: En la imagen se observa el usuario root, pero el que definimos realmente es glpi.

Seleccionaremos la base de datos que también se nombra glpi y si todo está bien y tenemos acceso al servidor de datos nos dará conexión de datos correcta.

Una página informativa nos hará saber que la inicialización de la base de datos ha sido correcta:

En el siguiente paso tendremos que decidir si queremos enviar información estadística anónima para mejorar GLPI. Asimismo, tenemos la opción de rellenar una encuesta sobre GLPI:

Otra opción que nos ofrecerá el instalador será la de acceder a servicios de soporte profesional o incluso donaciones para el proyecto:

Por fin termina la instalación de GLPI y se nos muestra una lista de usuarios del sistema con sus contraseñas iniciales. Las cuales nos advierte cambiar una vez entremos por primera vez.

Al continuar se mostrará la página de inicio de sesión, donde sólo podremos usar alguno de los usuarios especificados anteriormente:

En este caso hemos accedido con el usuario administrador glpi (con contraseña glpi) y la página inicial nos muestra una serie de avisos:

Con respecto a la eliminación del instalador web es sencillo, ya que lo podemos realizar desde consola:

Para cambiar las contraseñas iniciales de los usuarios podemos acudir a Administración/Usuarios

Desde la versión 9.5 de GLPI ya se incluye un mercado donde podremos descargar complementos(plugin). Ya no tendremos que ponerlos de forma manual como se hacía en versiones anteriores.

Como se aprecia en la imagen nos preguntan si queremos ver los complementos en la forma antigua o usar el mercado. Para poder usar el GLPI Market debemos primeramente registrarnos gratuitamente en el siguiente enlace. Una vez registrados vamos a la opción de Registro y a la derecha veremos una clave de registro con la cual podremos usar el mercado en nuestro GLPI.

Copiaremos dicha clave de registro y la usaremos en nuestro GLPI ya sea el 9.5 o el 10. Para ello iremos a Configuración/General/GLPI Networks y pegamos ahí la clave de registro que nos proporcionaron.

Ahora ya podemos acceder al mercado

Finalmente les muestro como quedo nuestro servidor GLPI donde se aprecia que usamos las últimas versiones al día de hoy.

Este proceso de instalación les servirá también el día que liberen la versión GLPI 10 stable. Espero les sirva y nos veremos en próximos tutoriales.

 

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 3 / 5. Recuento de votos: 1

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Sobre Alexander Rivas Alpizar 61 artículos
Administrador de Redes EMPRESTUR Cienfuegos

3 comentarios

  1. Google Chrome 99.0.4844.51 Google Chrome 99.0.4844.51 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36

    es una lastima que no esta fusioninventory para GLPI 10RC

  2. Firefox 97.0 Firefox 97.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0

    Como pudiste leer al principio del tutorial, la version 10 ya no necesitara de complementos externos para hacer inventario. Por lo que no es prioridad actualizar fusion ni ocs inventory para esta version. Hay que probar el inventario nativo que esta version trae cuando ya salga la version estable.
    alex out

  3. Google Chrome 105.0.0.0 Google Chrome 105.0.0.0 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36

    Excelente, muchas gracias, muy bien explicado y comprobados los pasos, aún válidos, sólo unos pequeños ajustes.
    La ruta para nginx es diferente, el paquete se debe descomprimir a:

    tar xzvf glpi-10.0.2.tgz -C /usr/share/nginx/html/

    De otra parte, aunque cargaba bien la página de GLPI, probando, antes del ajuste de nginx.conf, sí cargaba el index.html, luego no, aunque no afectaba la funcionalidad, para comprobar que todo estaba bien, tuve que hacer este ajuste en nginx.conf (agregar index.html):

    #nano /etc/nginx/conf.d/nginx.conf
    index index.html index.php;

    También instalé y GLPI Inventory, con GLPI Agent, todo muy bien.
    En GLPI Agent, la ruta del servidor depende del modo de instalación.
    https://glpi-agent.readthedocs.io/en/latest/configuration.html

    Sería bueno actualizar el artículo hasta ese punto, creo que es parte de la funcionalidad esencial de GLPI, el llevar el inventario.

    Gracias nuevamente.

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.