Carpeta Public de GLPI: Configuración Segura para Producción

Cómo configurar el DocumentRoot de GLPI en la carpeta public con Apache y Nginx, por qué es obligatorio y qué ocurre si no se configura.

Si el DocumentRoot de su GLPI no apunta a la carpeta public, sus datos están en riesgo. Esta es la configuración de seguridad más importante de GLPI en producción.

Por qué existe la carpeta public

GLPI 10+ separó los archivos web (accesibles por el navegador) de los archivos internos (config, datos, lógica). La carpeta public contiene únicamente:

  • index.php (enrutador principal)
  • .htaccess (reglas Apache)
  • Archivos estáticos (CSS, JS, imágenes)

Todo lo demás (configuración de base de datos, clases PHP, datos sensibles) queda fuera del webroot.

Apache

<VirtualHost *:443>
    ServerName glpi.suaempresa.com
    DocumentRoot /var/www/glpi/public

    <Directory /var/www/glpi/public>
        AllowOverride All
        Require all granted
    </Directory>

    SSLEngine On
    SSLCertificateFile /etc/ssl/certs/glpi.crt
    SSLCertificateKeyFile /etc/ssl/private/glpi.key
</VirtualHost>

Nginx

server {
    listen 443 ssl http2;
    server_name glpi.suaempresa.com;
    root /var/www/glpi/public;
    index index.php;

    location / {
        try_files $uri /index.php$is_args$args;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Verificación

Tras configurar, pruebe accediendo a URLs que NO deberían funcionar:

  • /config/config_db.php → debe devolver 404
  • /src/ → debe devolver 404
  • /vendor/ → debe devolver 404
  • /install/install.php → debe devolver 404 (tras su eliminación)

Si alguna devuelve contenido, el DocumentRoot está mal configurado.

Preguntas Frecuentes

A partir de GLPI 10, el servidor web debe apuntar a /var/www/glpi/public (no a /var/www/glpi). Esto expone solo los archivos necesarios para el navegador, protegiendo el código fuente y las configuraciones.

Los archivos de configuración, la base de datos local y el código PHP pueden quedar potencialmente accesibles mediante URL. Esto constituye una vulnerabilidad de seguridad crítica.

Acceda a https://suglpi.com/config/config_db.php en el navegador. Si muestra un error 404 o 403, está correcto. Si muestra contenido PHP o una descarga, está mal configurado.

?Necesitas ayuda?