Cómo instalar GLPI en CentOS 7

En este artículo explicamos cómo instalar GLPI en CentOS 7 paso a paso, para que puedas poner en marcha rápidamente esta aplicación de gestión de parque de equipos TI e incidencias sobre tu servidor o VPS CentOS.

Antes de instalar GLPI en CentOS 7

Para seguir hasta el final esta guía de instalación de GLPI en CentOS 7 debes satisfacer al menos los siguientes requisitos básicos:

  • Un sistema actualizado CentOS 7.
  • Una pila o entorno LAMP, es decir, servidor web con PHP (recomendable versión 8.1 ó superior) y bases de datos MariaDB/MySQL.
  • Acceso a línea de comandos con root o un usuario con permisos de sudo.
  • Conexión a Internet.

Si todavía no dispones del entorno necesario, puedes echar un vistazo previamente a nuestra guía de instalación de la pila LAMP en CentOS 7. Lo ideal es instalar GLPI en su propio servidor virtual sobre HTTPS, pero por simplicidad hemos optado por integrar la aplicación como parte de la página principal del servidor sobre HTTP. Es sencillo realizar los cambios para la configuración anterior.

También necesitaremos algunas herramientas que obtendremos desde los repositorios de CentOS 7, así que actualizamos las listas de paquetes:

~$ sudo yum update

E instalamos las herramientas y utilidades:

~$ sudo yum install -y policycoreutils-python wget

Cómo descargar GLPI para CentOS 7

Vamos a descargar GLPI para CentOS 7 desde la web del proyecto, donde encontraremos la última versión estable disponible:

como descargar GLPI para CentOS 7

Encontraremos paquetes en formato .zip y .tar.gz para descarga inmediata. En esta guía copiamos el enlace del paquete .tgz y lo descargamos desde consola con el comando wget:

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

Cómo instalar GLPI en CentOS 7

Para instalar GLPI en CentOS 7 es necesario preparar el sistema previamente, de modo que cumpla las exigencias del instalador web de la aplicación. Por ello es necesario seguir los pasos descritos a continuación:

Directorio para GLPI

Prepararemos el directorio de la aplicación, descomprimiendo el paquete que acabamos de descargar en el lugar adecuado para la configuración del servidor web que realicemos:

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

GLPI creará directorios sensibles dentro de la estructura de directorios principal, pero es más seguro situar estos directorios fuera del directorio principal, por lo que creamos los que aún no existen:

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

Y movemos uno que ya existe:

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

Creamos un archivo de configuración para que GLPI conozca de esta nueva configuración:

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

Su contenido será la ubicación del directorio de configuración externo:

<?php
define('GLPI_CONFIG_DIR', '/etc/glpi/');
if (file_exists(GLPI_CONFIG_DIR . '/local_define.php')) {
        require_once GLPI_CONFIG_DIR . '/local_define.php';
}

Ahora crearemos un segundo archivo de configuración en el directorio externo:

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

Y en su contenido se indicará la ubicación del resto de directorios externos:

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

Como GLPI necesita escribir en todos estos subdirectorios, concederemos la propiedad de los mismos al usuario con el que corre el servicio web (apache para Apache en CentOS 7):

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

PHP

GLPI requiere la presencia en CentOS 7 de algunas extensiones de PHP, como pueden ser apcu, gd, imap, ldap, mbstring, opcache, pear-CAS y xmlrpc. Por tanto las instalaremos:

~$ sudo yum install -y php-{gd,imap,intl,ldap,mbstring,opcache,pear-CAS,pecl-apcu,xmlrpc,pecl-zip}

También debemos hacer un ajuste de seguridad en el archivo php.ini, para lo que lo editamos:

~$ sudo nano /etc/php.ini

Buscamos esta directiva:

...
session.cookie_httponly =
...

Y le damos el valor on:

...
session.cookie_httponly = on
...

Guardamos y cerramos el archivo.

Recargamos la configuración del servidor web o del servicio PHP, según corresponda:

~$ sudo systemctl reload httpd

Servidor web

Si está cargado el módulo Rewrite de Apache, que suele estarlo por defecto, GLPI es capaz de usarlo mediante archivos .htaccess, pero el uso de estos archivos está desactivado por defecto. Vamos a crear una configuración para GLPI:

~$ sudo nano /etc/httpd/conf.d/glpi.conf

Mediante una directiva AllowOverride permitiremos la carga de archivos .htaccess en el directorio de GLPI:

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

Guardamos los cambios y cargamos la nueva configuración:

~$ sudo systemctl reload httpd

Configuración de SELinux

Si tenemos SELinux activado en CentOS 7, como suele ocurrir por defecto, además de los permisos estándar para escritura se necesitará crear un contexto de lectura/escritura del servicio web para los directorios en los que necesita escribir GLPI:

~$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/glpi(/.*)?"

Aplicaremos este nuevo contexto y otro ya existente a los directorios de GLPI con restorecon:

~$ sudo restorecon -R /var/www/html/glpi/ /etc/glpi/ /var/lib/glpi/

Además, activaremos ciertos permisos para el sevidor web, como la realización de peticiones de red:

~$ sudo setsebool -P httpd_can_network_connect on

Igualmente para el acceso a bases de datos por red:

~$ sudo setsebool -P httpd_can_network_connect_db on

Y el envío de correo electrónico:

~$ sudo setsebool -P httpd_can_sendmail on

Base de datos

GLPI se apoya sobre el servicio de bases de datos de CentOS 7, concretamente MariaDB o MySQL. Prepararemos lo necesario conectando al servicio, por ejemplo con el cliente de consola mysql y el usuario administrador que usemos habitualmente:

~$ mysql -u root -p

Si no logras conecta con el comando anterior (el usuario root de la base de datos no tiene contraseña y no tienes un usuario administrador alternativo) tal vez puedas conectar con el siguiente comando:

~$ sudo mysql

Creamos una base de datos para GLPI:

> create database glpi charset utf8mb4 collate utf8mb4_unicode_ci;

Creamos el usuario para GLPI con la siguiente sentencia:

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

Damos permisos al usuario sobre la base de datos:

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

También debemos darle permiso sobre la tabla de nombres de zonas horarias de MySQL:

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

Y cerramos la sesión:

> exit

En la mayoría de ocasiones las tablas de zona horaria de MySQL no están cargadas por defecto, así que debemos cargarlas con ayuda de la herramienta mysql_tzinfo_to_sql:

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

O, alternativamente, con el comando siguiente (según la forma de conectar a la base de datos de tu sistema):

~$ mysql_tzinfo_to_sql /usr/share/zoneinfo/ | sudo mysql mysql

Instalación vía web

Llega el momento de instalar GLPI en CentOS 7 a través del instalador web. Accedemos desde un navegador indicando la URL con la que quedará configurada la aplicación. En este ejemplo, basta con añadir la ruta /glpi a la dirección IP o dominio del servidor CentOS 7.

como instalar GLPI en CentOS 7

En la primera página del instalador seleccionamos el idioma del instalador y la aplicación.

Seguidamente se nos muestran los términos de la licencia, que aceptaremos implícitamente si decidimos continuar:

instalar glpi en centos 7

El instalador permite realizar una nueva instalación o actualizar una instalación previa de GLPI en nuestro sistema CentOS 7:

instalacion de glpi en centos 7

En este caso se trata de una nueva instalación, por lo que seguiremos el enlace «Instalar«.

Antes de la instalación se nos muestra una larga lista de comprobación de requisitos del sistema:

como configurar centos 7 para glpi

Si seguiste los pasos previos a la instalación no debería haber ningún aviso ni alerta de requisito sin cumplir. Si lo hubiera, soluciónalo y regresa al navegador para refrescar la página.

A continuación se solicita la configuración de acceso al servicio de bases de datos:

instalador de glpi para centos 7

Indicaremos el usuario y contraseña que creamos anteriormente, pero también es obligatorio indicar la dirección del servidor de bases de datos que, en este caso, al ser la máquina local es localhost.

Seleccionaremos la base de datos:

instalando glpi en centos 7

Elegimos la base que creamos anteriormente.

El instalador se tomará unos instantes para inicializar la base de datos y nos mostrará el resultado del proceso:

Terminada la instalación, se nos ofrece la posibilidad de activar el servicio de envío de estadísticas anónimas de uso y cumplimentar una encuesta sobre GLPI:

Por último, el instalador nos informa sobre la posibilidad de contratar el servicio de soporte profesional, así como la relización de donaciones:

La instalación finaliza y nos informa de la existencia de una serie de usuarios y sus claves por defecto:

Al acceder a la página de inicio de sesión tendremos que utilizar uno de los usuarios mencionados anteriormente, utilizando la clave por defecto correspondiente:

Iniciada la sesión, la página principal de GLPI nos muestra una serie de alertas, relacionadas con el instalador web y los usuarios por defecto:

glpi en centos 7

Tenemos que eliminar el archivo del instalador web, tarea que podemos realizar fácilmente desde consola:

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

Para cambiar las contraseñas por defecto visitamos la sección «Usuarios» del menú «Administración«, y obtendremos una lista donde aparecen todos los usuarios existentes:

glpi para centos 7

Elegimos el usuario que nos interese y accedemos a su perfil:

glpi sobre centos 7

Podremos cambiar la contraseña y cualquier otro dato, incluso el nombre de usuario para el inicio de sesión. Los cambios se guardan al pinchar el botón «Guardar» a pie de página.

Repetida esta operación con cada uno de los usuario, desaparecerán las alertas al inicio de sesión.

Ya tienes la aplicación lista para empezar a trabajar con la gestión de equipos y usuarios. Aún queda una advertencia sobre la configuración del directorio raíz de la aplicación, pero parece que dicha configuración es demasiado compleja para el viejo CentOS 7.

Conclusión

Así de fácil es instalar GLPI en CentOS 7, por lo que en muy pocos minutos estarás listo para empezar a dar de alta equipos y dispositivos informáticos de tu organización, preparar usuarios e incidencias, etc.

Si tienes dudas, preguntas, alguna sugerencia, algún problema con la instalación, etc. puedes dejar un comentario.

¡Apoya este sitio!

¿Ya estás listo para gestionar tu parque informático gracias a esta guía de instalación y configuración de GLPI en CentOS 7? Si es así y te apetece agradecérnoslo, cualquier aportación ayuda al mantenimiento de este sitio y creación de más guías y tutoriales de CentOS 7 o GLPI.

Puedes ayudarnos dejando 1 $ de propina desde PayPal:

O, si te sientes especialmente agradecido, puedes hacerlo invitarnos a un café:

¡Gracias!

Valora esta entrada

4.7/5 - (6 votos)

13 comentarios en «Cómo instalar GLPI en CentOS 7»

  1. Hola, seguí todos los pasos y aún me da esta advertencia:

    Web server root directory configuration is not safe as it permits access to non-public files. See installation documentation for more details.

    ¿Qué puede ser?

    Responder
    • Hola, Fabian. Parece que la configuración de las últimas versiones de GLPI para CentOS 7 se complica un poco. En principio aun sin realizar ese ajuste correctamente debería funcionar. Sigo investigando cómo acomodar la configuración necesaria, así que en cuanto tenga algo actualizaré el tutorial.

      Responder
  2. Buen día,

    Todo me funcionó super bien, pero tengo una duda, el GLPI me arroja que no se ha activado el uso de zona horaria, quiero ejecutar el comando que me da el propio GLPI pero me dice que el acceso a la base de datos de zona horaria (mysql) no está permitdo.

    ¿Me podrían ayudar? Gracias.

    Responder
    • Hola, Fabián. En este tutorial, en la sección de preparación de la base de datos, se muestra el comando con el que se le da permiso al usuario de GLPI sobre la base de datos de zonas horarias. Comprueba ese paso, tal vez te lo saltaste o se produjo algún error que nos podría dar una pista de qué puede estar sucediendo.

      Responder
  3. Hola, qué tal, feliz 2023. Sabes que seguí los pasos al pie de la letra y cuando pongo el usuario para iniciar la instalación me devuelve el siguiente error:
    Imposible conectarse a la base de datos
    El servidor ha respondido: Access denied for user ‘glpi’@’centos.trabajo.gob.ar’ (using password: YES)

    Responder
    • Hola, Pablo. No me acaba de quedar claro el escenario de tu instalación (supongo que el error sucede en el paso etiquetado como 1). ¿El servicio web y el de bases de datos están en la misma máquina? Si es así deberías indicar como servidor ‘localhost‘ y como usuario ‘glpi‘ (además de su clave). ¿Has creado la base de datos y el usuario localmente como se muestra en el tutorial?

      Responder
    • Hola, Héctor. Al principio del tutorial se menciona en los requerimientos que se parte de una pila LAMP. Además, se proporciona un enlace a un tutorial en este mismo sitio para preparar dicho entorno en caso de no disponer de él. Te remito a dicho tutorial.

      Responder

Deja un comentario