Pasta Public do GLPI: Configuração Segura para Produção

Como configurar o DocumentRoot do GLPI na pasta public com Apache e Nginx, por que isso é obrigatório e o que acontece se não configurar.

Se o DocumentRoot do seu GLPI não aponta para a pasta public, seus dados estão em risco. Esta é a configuração de segurança mais importante do GLPI em produção.

Por que a pasta public existe

O GLPI 10+ separou os arquivos web (acessíveis pelo navegador) dos arquivos internos (config, dados, lógica). A pasta public contém apenas:

  • index.php (roteador principal)
  • .htaccess (regras Apache)
  • Arquivos estáticos (CSS, JS, imagens)

Todo o restante (configuração de banco, classes PHP, dados sensíveis) fica fora do 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;
    }
}

Verificação

Após configurar, teste acessando URLs que NÃO devem funcionar:

  • /config/config_db.php → deve retornar 404
  • /src/ → deve retornar 404
  • /vendor/ → deve retornar 404
  • /install/install.php → deve retornar 404 (após remoção)

Se qualquer uma retornar conteúdo, o DocumentRoot está errado.

Domande Frequenti

A partir do GLPI 10, o servidor web deve apontar para /var/www/glpi/public (não /var/www/glpi). Isso expõe apenas os arquivos necessários ao navegador, protegendo código-fonte e configurações.

Arquivos de configuração, banco de dados local e código PHP ficam potencialmente acessíveis via URL. Isso é uma vulnerabilidade de segurança crítica.

Acesse https://seuglpi.com/config/config_db.php no navegador. Se mostrar erro 404 ou 403, está correto. Se mostrar conteúdo PHP ou download, está errado.

Hai bisogno di aiuto?