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.