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.
Contenido
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:
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.15/glpi-10.0.15.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.
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:
El instalador permite realizar una nueva instalación o actualizar una instalación previa de GLPI en nuestro sistema 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:
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:
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:
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:
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:
Elegimos el usuario que nos interese y accedemos a su perfil:
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.
Cómo instalar plugins en GLPI sobre CentOS 7
Para ilustrar la instalación de plugins en GLPI sobre CentOS 7, podemos instalar el plugin que conecta con el servicio OCS Inventory (que puede estar en la misma máquina o en otra).
Visitamos la sección «Configuración / Plugins«:
Seguimos el enlace «Ver el catálogo de complementos«, que abrirá una nueva ventana del navegador donde se abrirá a su vez la página de plugins en el sitio oficial de GLPI.
Podemos usar el buscador incluido o, si es el caso, seguir el enlace que aparezca en la página inicial. En este caso el plugin que vamos a instalar aparece en dicha página, así que seguimos el enlace y se abre la página con la ficha del plugin:
Ahora buscamos el enlace de descarga, en este caso un icono, y lo seguimos. Se abrirá por fin la página oficial del plugin:
Encontramos el archivo que nos interesa, comprimido en formato .tar.bz2, y lo descargamos. Por ejemplo, podemos copiar el enlace y descargar desde consola con el comando wget:
~$ wget https://github.com/pluginsGLPI/ocsinventoryng/releases/download/2.0.4/glpi-ocsinventoryng-2.0.4.tar.bz2
Puede que necesitemos descargar las herramientas necesarias para manejar el formato de compresión bz2:
~$ sudo yum install -y bzip2
Ya tenemos todo lo necesario, así que descomprimimos el archivo directamente en el directorio de plugins de GLPI.
~$ bzcat glpi-ocsinventoryng-2.0.4.tar.bz2 |sudo -u apache tar xv -C /var/www/html/glpi/plugins/
Para que GLPI pueda tener total control sobre el plugin y sus archivos, hay que desempaquetar estos mediante el usuario con el que corre el servicio web, el usuario apache.
Volvemos a la interfaz web de GLPI, de nuevo a la sección «Configuración / Plugins» y ahora aparecerá el plugin que acabamos de instalar en el listado:
En la entrada en la lista de dicho plugin aparece en la columna «Acciones» un icono que nos permitirá instalarlo. Pulsando en dicho icono el plugin queda instalado:
Se nos ofrece la posibilidad de instalarlo directamente desde la notificación de instalación. También podemos activarlo desde el icono correspondiente en la sección «Acciones» del plugin:
Ahora sólo quedaría realizar la configuración necesaria, como introducir los datos del servicio al que queremos conectar.
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!
Tengo una duda, al tratar de instalar el plugin de OCS Inventory me dice que Connection to the database failed, qué podría ser.
Acabo de probar la instalación de ese plugin sobre una nueva instalación de GLPI en CentOS 7 y se ha instalado y activado sin problemas. ¿Qué pasos has seguido y en qué momento ha fallado?
Actualizado a la versión 10.0.14.
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?
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.
Excelente documentación, me funcionó muy bien.
Estupendo, Gerson.
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.
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.
Actualizado a la versión 10.0.6.
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)
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?
No menciona cuándo se instala Apache o Nginx.
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.
Actualizado a la versión 10.0.0.