Cómo instalar GLPI en Ubuntu 20.04 LTS

En esta entrada veremos cómo instalar GLPI en Ubuntu 20.04 LTS Focal Fossa paso a paso, de forma que puedas gestionar inventarios TI y dar soporte a usuarios desde tu servidor o VPS Ubuntu.

Antes de instalar GLPI en Ubuntu 20.04 LTS

Para poder completar los pasos de esta guía de instalación de GLPI en Ubuntu 20.04 LTS Focal Fossa sería necesario cumplir los siguientes requisitos mínimos:

  • Una máquina Ubuntu 20.04 LTS Focal Fossa actualizada.
  • Un entorno o pila tipo LAMP (servicio web con PHP desde la versión 7.4 hasta la 8.1 y bases de datos MariaDB/MySQL).
  • Un usuario con permisos de sudo.
  • Acceso a Internet.

En el caso de que no tengas listo aún el entorno necesario es buena idea echar un vistazo a nuestra guía de instalación de la pila LAMP en Ubuntu 20.04 LTS.

Cómo descargar GLPI para Ubuntu 20.04 LTS

Vamos a descargar GLPI para Ubuntu 20.04 LTS Focal Fossa desde el sitio web oficial del proyecto, donde buscaremos la última versión estable disponible:

como descargar glpi para ubuntu 20.04 lts focal fossa

Encontraremos un paquete en formato .tar.gz que podemos descargar desde el navegador o, como haremos en este tutorial, desde consola con la herramienta wget:

~$ wget -q https://github.com/glpi-project/glpi/releases/download/10.0.6/glpi-10.0.6.tgz

Cómo instalar GLPI en Ubuntu 20.04 LTS

Para instalar GLPI en Ubuntu 20.04 LTS tendremos que seguir una serie de pasos encaminados a preparar el sistema antes de poder lanzar el instalador web. Vamos a ver detalladamente a continuación estos pasos.

Archivos de GLPI

Descomprimimos el paquete que acabamos de descargar directamente en la ubicación que consideremos necesaria:

~$ sudo tar xf glpi-10.0.6.tgz -C /var/www/

Para proteger archivos sensibles de la plataforma, tendremos que sacar ciertos directorios del directorio inicial.

Empezaremos creando un directorio para la configuración y otro para el registro de eventos (o log) de GLPI:

~$ sudo mkdir /etc/glpi /var/log/glpi

Moveremos el directorio files/ a /var/lib/:

~$ sudo mv /var/www/glpi/files/ /var/lib/glpi

Ahora crearemos un archivo para configurar las rutas de estos directorios externos:

~$ sudo nano /var/www/glpi/inc/downstream.php

Con el contenido:

<?php
define('GLPI_CONFIG_DIR', '/etc/glpi/');

if (file_exists(GLPI_CONFIG_DIR . '/local_define.php')) {
        require_once GLPI_CONFIG_DIR . '/local_define.php';
}

Guardamos este archivo y creamos otro donde especificamos el resto de rutas:

~$ sudo nano /etc/glpi/local_define.php

Con el contenido:

<?php
define('GLPI_VAR_DIR', '/var/lib/glpi');
define('GLPI_LOG_DIR', '/var/log/glpi');

Guardamos y cerramos estos archivos.

GLPI necesita escribir en su propio directorio de instalación, y en los directorios externos que hemos craedo, así que cambiaremos la propiedad de sus archivos y carpetas al usuario con el que corre el servicio web en Ubuntu 20.04 LTS:

~$ sudo chown -R www-data: /var/www/glpi/ /etc/glpi/ /var/lib/glpi/ /var/log/glpi/

Servicio web

Puedes integrar de muchas formas GLPI en el servicio web de Ubuntu 20.04 LTS, ya sea como el sitio web principal, un servidor virtual o, como haremos en este artículo, como parte del sitio principal a través de un alias.

Además, GLPI está preparado para trabajar a través de archivos .htaccess con algunos módulos de Apache como Expires o Rewrite. Dichos módulos no están cargados por defecto, por lo que debemos cargarlos:

~$ sudo a2enmod expires rewrite

Crearemos un archivo de configuración de Apache para GLPI:

~$ sudo nano /etc/apache2/sites-available/glpi.conf

En este archivo definiremos el alias para hacer navegable la aplicación y permitiremos el uso de archivos .htaccess en el directorio de instalación de GLPI:

Alias /glpi /var/www/glpi

<Directory /var/www/glpi>
        AllowOverride all
</Directory>

Guardamos el archivo y activamos esta configuración:

~$ sudo a2ensite glpi.conf

Finalmente, reiniciamos el servicio web para aplicar todos estos cambios:

~$ sudo systemctl restart apache2

PHP

GLPI require la presencia en Ubuntu 20.04 LTS de ciertas extensiones que obtendremos desde los repositorios de la distribución, por lo que actualizaremos las listas de paquetes:

~$ sudo apt update

Instalamos las extensiones necesarias, en el caso de usar la versión de PHP nativa de Ubuntu 20.04:

~$ sudo apt install -y php-{mbstring,curl,gd,xml,intl,ldap,apcu,xmlrpc,cas,zip,bz2}

Pero si usas una versión procedente del repositorio alternativo, habrá que indicarla en el nombre de los paquetes; por ejemplo, para PHP 8.1 instalaríamos las extensiones así:

~$ sudo apt install -y php8.1-{apcu,bz2,curl,gd,intl,ldap,mbstring,xml,xmlrpc,zip}

También debemos hacer un ajuste en el archivo php.ini, que editaremos en la ruta que corresponda, ya sea si se trata de la versión nativa de Ubuntu 20.04 LTS:

~$ sudo nano /etc/php/7.4/apache2/php.ini

O una versión determinada del repositorio alternativo (la 8.1, por ejemplo):

~$ sudo nano /etc/php/8.1/apache2/php.ini

Sea cual sea el caso, buscamos la siguiente directiva:

...
session.cookie_httponly =
...

Y le damos el valor on:

...
session.cookie_httponly = on
...

Hecho esto, guardamos los cambios y cerramos el archivo.

Finalmente, recargamos la configuración del servicio web o PHP, según corresponda:

~$ sudo systemctl reload apache2

Base de datos

GLPI se apoya sobre el servicio de bases de datos que tengamos en Ubuntu 20.04 LTS, que deberá ser del tipo MariaDB/MySQL. Para preparar lo necesario conectaremos al servicio con el cliente de consola mysql y un usuario administrador:

~$ mysql -u root -p

Creamos la base de datos para GLPI:

> create database glpi charset utf8mb4 collate utf8mb4_unicode_ci;

Creamos el usuario que administrará la base:

> create user glpi@localhost identified by 'XXXXXXXX';

Otorgamos los permisos necesarios al usuario sobre la base:

> grant all privileges on glpi.* to glpi@localhost;

Pero el usuario también necesitará permisos de acceso a la tabla de nombres de zonas horarias de MySQL:

> grant select on mysql.time_zone_name to glpi@localhost;

Ya podemos cerrar la conexión:

> exit

Las tablas de zonas horarias de MySQL suelen estar vacías por defecto, así que es importante poblarlas con ayuda del comando mysql_tzinfo_to_sql:

~$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

Es normal que se produzcan algunos avisos durante el proceso.

Instalador web

Para acceder al instalador web de GLPI en Ubuntu 20.04 LTS desde un navegador bastará con utilizar la dirección que corresponda al sitio web tal como la hayamos configurado, en este caso añadiendo el alias /glpi a la dirección IP, nombre DNS, dominio, etc.

Por ejemplo, la máquina Ubuntu 20.04 LTS sobre la que hemos realizado este artículo es accesible en el subdominio ubuntu2004.local.lan, por lo que podremos utilizar http://ubuntu2004.local.lan/glpi como URL de acceso al instalador web:

como instalar glpi en ubuntu 20.04 lts focal fossa

En la primera página del instalador web podemos elegir el idioma en que se presentará GLPI.

A continuación se muestran los términos de la licencia de uso:

instalar glpi en ubuntu 20.04 lts focal fossa

El hecho de continuar con la instalación implicará la aceptación de dichos términos.

El instalador nos preguntará si se trata de una nueva instalación o una actualización:

instalacion de glpi en ubuntu 20.04 lts focal fossa

En este caso es una nueva instalación, por lo que continuaremos siguiendo el enlace «Instalar«.

El siguiente paso es la lista de requerimientos del sistema:

configuracion de ubuntu 20.04 lts para instalar glpi

Si has seguido los pasos anteriores todos los requisitos deberían cumplirse, pero si falta alguno trata de solucionarlo y recarga la lista con el enlace «Inténtalo de nuevo«.

Es el momento de configurar la conexión a la base de datos:

instalador de glpi para ubuntu 20.04 lts focal fossa

Como servidor lo normal será indicar localhost ya que, al menos en este artículo, los servicios web y de bases de datos se encuentran en la misma máquina. El usuario y la contraseña serán los que creamos anteriormente.

En el siguiente paso tendremos que seleccionar o crear la base de datos:

instalando glpi en ubuntu 20.04 lts focal fossa

Como creamos la base anteriormente, la seleccionaremos en la lista de opciones y continuamos.

El instalador tardará unos instantes en inicializar la base de datos:

Se nos avisará de que la inicialización ha sido correcta y proseguimos.

GLPI dispone de un servicio de recopilación de datos estadísticos de uso:

Podemos dejarlo activado o no, según nos interese.

También se nos informará sobre la posibilidad de contratar los servicios profesionales de GLPI o contribuir con una donación:

La instalación finaliza y se nos informa de que existen 4 usuarios por defecto:

El usuario que nos interesa es el administrador glpi, cuya contraseña por defecto es glpi también.

Es el momento de iniciar sesión:

Utilizamos glpi/glpi para autenticarnos y accedemos por fin a la aplicación:

glpi para ubuntu 20.04 lts focal fossa

Un aviso nos recuerda que los 4 usuarios por defecto deberían cambiar por seguridad sus contraseñas (el aviso se seguirá mostrando mientras no se cambien todas las contraseñas), y que es importante eliminar el archivo del instalador web. Esto último podemos hacerlo a través de consola:

~$ sudo rm /var/www/glpi/install/install.php

Podemos acceder a la lista de usuarios accediendo a la opción «Usuarios» del menú «Administración«:

Siguiendo el enlace del nombre de cualquier usuario podremos acceder a su ficha personal:

glpi sobre ubuntu 20.04 lts focal fossa

En el completo formulario que se presenta podremos cambiar la contraseña y guardar los cambios con el enlace «Guardar«.

Una vez cambiadas todas las contraseñas podemos regresar a la página de inicio de GLPI donde ya no aparecerá el aviso:

glpi en ubuntu 20.04 lts focal fossa

¡Ya podemos empezar a trabajar con GLPI!

Conclusión

Ahora que sabes cómo instalar GLPI en Ubuntu 20.04 LTS Focal Fossa, llevar la gestión del inventario TI y el soporte de usuarios será más sencillo que nunca, tanto sobre red local como a través de Internet.

En caso de dudas, preguntas, correcciones de posibles errores, sugerencias de mejora o actualización del artículo, etc. puedes dejar un comentario que revisaremos lo antes posible.

¡Apoya comoinstalar.me!

¿Ya tienes todo listo para empezar a dar de alta el inventario TI de tu organización gracias a esta guía de instalación de GLPI en Ubuntu 20.04 LTS Focal Fossa? En ese caso, si quieres agradecérmelo puedes hacerlo dejando una propina de 1 $ en PayPal para una CocaCola:

O, si te sientes especialmente agradecido, puedes invitarme a un cappuccino:

¡Gracias!

Valora esta entrada

5/5 - (10 votos)

35 comentarios en «Cómo instalar GLPI en Ubuntu 20.04 LTS»

  1. Gran tutorial, felicidades.
    Una pregunta, si la conexión será en un servidor que no es localhost, ¿qué dato debe llevar ahí para la conexión?
    Ya intenté escribiendo la IP con el puerto 80 pero no funcionó, espero puedas ayudarme.

    Saludos.

    Responder
        • A ver, que te estás liando. Para la conexión a la base de datos no se indica ni protocolo (que desde luego no sería http), ni puerto (que tampoco sería el 80), simplemente la dirección. Lo lógico es que estés realizando la instalación tanto de la plataforma GLPI como de la base de datos en la misma máquina Ubuntu 20.04 LTS. Por tanto, la dirección es localhost, ó 127.0.0.1 (insisto, sin protocolos ni puertos), independientemente de si estás trabajando de forma local o de forma remota en un servidor en Internet.

          Sólo en el caso de que tengas el servidor web en una máquina y el servidor de bases de datos en otra distinta habría que poner la dirección IP de la segunda en el formulario de conexión del instalador web de GLPI. Pero antes de eso habría que hacer algunos ajustes en la base de datos.

          Responder
    • Este el error que marca:

      Uncaught Exception TypeError: mysqli::__construct(): Argument #5 ($port) must be of type ?int, string given in /var/www/glpi/install/install.php at line 240

      Responder
  2. Tengo una observación pues no me carga la opción de zona horaria, es decir, termino toda la instalación y funciona normal pero la opción de Zona Horaria del GLPI me aparece con un símbolo amarillo.

    Agradezco tu apoyo.
    Saludos.

    Responder
    • Eso suele deberse a que falta el permiso del usuario de la base de datos sobre la tabla de zonas horarias de MariaDB/MySQL, o que no se han cargado las zonas horarias en dicha tabla. Revisa los pasos correspondientes del tutorial y asegúrate de que no se producen errores.

      Responder
  3. Llegué al punto del paso 2 de la instalación de GLPI y me saltó el siguiente error:

    Uncaught Exception mysqli_sql_exception: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near »0′, `type` int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘…’ at line 4 in /var/www/glpi/inc/dbmysql.class.php at line 328

    Responder
  4. Hola.
    En primer lugar menudo pedazo tutorial te has marcado. He tenido un problema a la hora de inicializar la base de datos, que me da un error:

    Uncaught Exception mysqli_sql_exception: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near »0′, `type` int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘…’ at line 4 in /var/www/glpi/inc/dbmysql.class.php at line 328

    Decir que soy totalmente neófito de temas web y demás.

    Un saludo.

    Responder
    • Hola, Leandro. ¿Qué versión de MariaDB/MySQL y PHP estás usando? En principio para las versiones incluidas en los repositorios de Ubuntu 20.04 la instalación de GLPI no suele dar problemas; sin embargo, la versión 8.1 de PHP todavía no es compatible.

      Responder
      • He encontrado el problema. Al parecer la versión por defecto de PHP para Ubuntu 20.04 ahora es la 8.1, y la versión 9.5.7 de GLPI no es compatible con esa versión. Para usar la nueva versión de PHP hay que instalar la versión Beta de GLPI, la cual me da un error de permisos cuando me dice si cumplo los requisitos. Al final he optado por instalar la versión 9.5.7 con PHP 7.4, pero para ello he tenido que modificar algunos comandos de instalación de este tutorial.

        Finalmente ya he conseguido ponerlo a andar. ¡Muchas gracias!

        Responder
  5. Hola, realizando lo que anteriormente mencionas al pie de la letra al momento de conectar la base de datos me muestra el siguiente error:

    «Imposible conectarse a la base de datos
    El servidor ha respondido: The server requested authentication method unknown to the client
    »

    Cabe mencionar que estoy usando una máquina virtual con Ubuntu Server y realizo la instalación gráfica desde mi equipo personal.

    Responder
        • A ver, Marcos, hasta donde yo sé la versión actual de GLPI requiere PHP >= 7.2.0, de modo que versiones anteriores ni siquiera pueden iniciar el instalador web. En cualquier caso, en el tutorial se explica cómo crear el usuario de la base de datos de GLPI para MySQL 8.0 y para el resto de alternativas. Parece que justo ahí tienes el problema.

          Responder
  6. Hola, primero agradecer el tuto, está muy bien explicado y detallado. Por otra parte comentarte que luego de elegir el idioma pincho OK, pero la página queda en blanco, no arroja el acuerdo de licencia… ¿Sabes a qué se debe? Me despido desde ya agradecido.
    ¡¡Saludos!!

    Responder
    • ¡Hola, Cristian! Si la página se queda en blanco es debido a algún error en la aplicación. Revisa el archivo de registro del servicio web donde aparecerá el mensaje del error que servirá de indicación para solucionarlo.

      Responder
  7. ¡Hola a todos! Me da este error a la hora de ponerle contraseña al usuario en MariaDB:
    create user glpi@localhost identified with mysql_native_password indentified by ‘sigloxxi’;
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘indentified by ‘sigloxxi» at line 1

    ¿Me podrían ayudar?, gracias.

    Responder
    • ¡Hola, Frederick! Debes leer con más atención, esa setencia sólo debes aplicarla si usas MySQL 8 y, sin embargo, dices que estás usando MariaDB.

      Responder

Deja un comentario