GLPI Instalaciones

Instalación de GLPI en Ubuntu

GLPI es una plataforma ITSM robusta utilizada en miles de organizaciones para la gestión de tickets, inventarios, activos, procesos y operaciones de TI. Este tutorial te guiará paso a paso para instalar GLPI en Ubuntu siguiendo buenas prácticas, ajustes recomendados y una estructura de archivos adecuada para entornos reales.


📌 Recomendación profesional sobre la base de datos

Aunque este tutorial instala GLPI, Apache, PHP y MariaDB en un mismo servidor, en entornos productivos recomendamos separar la base de datos en un servidor independiente.

Esto mejora el rendimiento, seguridad, escalabilidad y facilita respaldos y mantenimientos. Para fines prácticos, este tutorial continúa con una instalación en un solo servidor.


1- Requisitos previos

Actualiza tu servidor Ubuntu antes de continuar:

sudo apt update && sudo apt upgrade -y

Instala herramientas básicas necesarias:

sudo apt install -y wget curl unzip tar software-properties-common

2- Instalar Apache, PHP y extensiones necesarias

sudo apt install -y apache2 libapache2-mod-php \
php php-cli php-common php-curl php-gd php-imap php-intl \
php-ldap php-mbstring php-mysql php-xml php-xmlrpc php-zip php-bz2 php-gmp

Verifica que PHP esté funcionando:

php -v

3- Instalar y configurar MariaDB

Instala MariaDB y asegúrala:

sudo apt install -y mariadb-server mariadb-client
sudo mysql_secure_installation

Crear base de datos y usuario para GLPI:

CREATE DATABASE glpi CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'glpi'@'localhost' IDENTIFIED BY 'TuPasswordSegura123!';
GRANT ALL PRIVILEGES ON glpi.* TO 'glpi'@'localhost';
FLUSH PRIVILEGES;

4- Descargar GLPI

Descarga la versión más reciente desde GitHub:

wget https://github.com/glpi-project/glpi/releases/download/11.0.2/glpi-11.0.2.tgz
tar -xvzf glpi-11.0.2.tgz
sudo mv glpi /var/www/html/

5- Permisos recomendados

sudo chown -R www-data:www-data /var/www/html/glpi
sudo chmod -R 755 /var/www/html/glpi

6- Reorganización FHS (Opcional pero muy recomendado)

GLPI puede organizarse siguiendo el estándar FHS, lo que mejora claridad, seguridad y mantenimiento del sistema.

/etc/glpiArchivos de configuración
/var/www/html/glpiCódigo fuente (solo lectura)
/var/lib/glpiArchivos variables: sesiones, plugins, documentos, cache
/var/log/glpiRegistros de GLPI
6.1 Crear downstream.php
vim /var/www/html/glpi/inc/downstream.php
<?php
define('GLPI_CONFIG_DIR', '/etc/glpi/');
if (file_exists(GLPI_CONFIG_DIR . '/local_define.php')) {
    require_once GLPI_CONFIG_DIR . '/local_define.php';
}
6.2 Mover carpetas a sus nuevas ubicaciones
mv /var/www/html/glpi/config /etc/glpi
mv /var/www/html/glpi/files /var/lib/glpi
mv /var/lib/glpi/_log /var/log/glpi
6.3 Crear local_define.php
vim /etc/glpi/local_define.php
<?php
define('GLPI_VAR_DIR', '/var/lib/glpi');
define('GLPI_DOC_DIR', GLPI_VAR_DIR);
define('GLPI_CACHE_DIR', GLPI_VAR_DIR . '/_cache');
define('GLPI_CRON_DIR', GLPI_VAR_DIR . '/_cron');
define('GLPI_GRAPH_DIR', GLPI_VAR_DIR . '/_graphs');
define('GLPI_LOCAL_I18N_DIR', GLPI_VAR_DIR . '/_locales');
define('GLPI_LOCK_DIR', GLPI_VAR_DIR . '/_lock');
define('GLPI_PICTURE_DIR', GLPI_VAR_DIR . '/_pictures');
define('GLPI_PLUGIN_DOC_DIR', GLPI_VAR_DIR . '/_plugins');
define('GLPI_RSS_DIR', GLPI_VAR_DIR . '/_rss');
define('GLPI_SESSION_DIR', GLPI_VAR_DIR . '/_sessions');
define('GLPI_TMP_DIR', GLPI_VAR_DIR . '/_tmp');
define('GLPI_UPLOAD_DIR', GLPI_VAR_DIR . '/_uploads');
define('GLPI_INVENTORY_DIR', GLPI_VAR_DIR . '/_inventories');
define('GLPI_THEMES_DIR', GLPI_VAR_DIR . '/_themes');
define('GLPI_LOG_DIR', '/var/log/glpi');

7- Permisos avanzados

chown root:root /var/www/html/glpi/ -R
chown www-data:www-data /etc/glpi -R
chown www-data:www-data /var/lib/glpi -R
chown www-data:www-data /var/log/glpi -R
chown www-data:www-data /var/www/html/glpi/marketplace -Rf

find /var/www/html/glpi/ -type f -exec chmod 0644 {} \;
find /var/www/html/glpi/ -type d -exec chmod 0755 {} \;
find /etc/glpi -type f -exec chmod 0644 {} \;
find /etc/glpi -type d -exec chmod 0755 {} \;
find /var/lib/glpi -type f -exec chmod 0644 {} \;
find /var/lib/glpi -type d -exec chmod 0755 {} \;
find /var/log/glpi -type f -exec chmod 0644 {} \;
find /var/log/glpi -type d -exec chmod 0755 {} \;

8- Configurar el servidor web (VirtualHost GLPI 10+)

GLPI 10 introduce el uso obligatorio del directorio /public. El VirtualHost debe apuntar a él para un funcionamiento correcto.

vim /etc/apache2/sites-available/glpi.conf
<VirtualHost *:80>
    ServerName yourglpi.yourdomain.com
    DocumentRoot /var/www/html/glpi/public

    <Directory /var/www/html/glpi/public>
        Require all granted
        RewriteEngine On

        RewriteCond %{HTTP:Authorization} ^(.+)$
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php [QSA,L]
    </Directory>
</VirtualHost>
a2dissite 000-default.conf
a2enmod rewrite
a2ensite glpi.conf
systemctl restart apache2

9- Ajustes recomendados en php.ini

vim /etc/php/8.1/apache2/php.ini
upload_max_filesize = 20M
post_max_size = 20M
max_execution_time = 60
max_input_vars = 5000
memory_limit = 256M
session.cookie_httponly = On
date.timezone = America/Bogota

10- Completar instalación desde el navegador

Ingresa desde tu navegador a:

http://<tu-servidor>/glpi

Completa el instalador gráfico. Usuarios iniciales:

UsuarioRolContraseña
glpiAdministradorglpi
techTécnicotech
normalUsuario estándarnormal
post-onlySolo creaciónpost-only

Importante: cambia todas estas contraseñas inmediatamente.


✔ Instalación completada

GLPI ya está instalado correctamente. En el próximo tutorial veremos la configuración inicial, seguridad, correo, perfiles, entidades y ajustes recomendados para que tu instancia quede lista para producción.