🔙 Citado em: Guia Completo: Instalação do GLPI em Servidor Linux (Ubuntu/Debian) com Apache ou Nginx
Utilizando DockerEste exemplo automatiza a configuração do
DocumentRootpara a pasta/var/www/html/public, eliminando o aviso de segurança do GLPI 10.
Referência
Não deixe de analisar o conceito dessa implementação:
Guia de Correção de Segurança: Diretório Raiz do GLPI (DocumentRoot)
1. Arquivo de Configuração do Apache (glpi.conf)
Este arquivo será copiado para dentro do container para substituir a configuração padrão.
<VirtualHost *:80>
DocumentRoot /var/www/html/public
<Directory /var/www/html/public>
AllowOverride All
Require all granted
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
2. Dockerfile
O Dockerfile utiliza uma imagem base de PHP com Apache e aplica as configurações de segurança.
FROM php:8.1-apache
# Instalação de dependências necessárias para o GLPI
RUN apt-get update && apt-get install -y \
libpng-dev libjpeg-dev libfreetype6-dev \
libxml2-dev libicu-dev libzip-dev \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install gd mysqli pdo_mysql intl xml zip bz2 opcache
# Habilita o mod_rewrite do Apache
RUN a2enmod rewrite
# Copia o arquivo de configuração customizado para o Apache
COPY glpi.conf /etc/apache2/sites-available/000-default.conf
# Define o diretório de trabalho
WORKDIR /var/www/html
# Nota: Aqui você deve copiar os arquivos do GLPI para o container
# COPY ./glpi-10.0.15 /var/www/html/
# Garante as permissões corretas para o usuário do Apache
RUN chown -R www-data:www-data /var/www/html
3. Docker Compose (docker-compose.yml)
Para facilitar a orquestração com o banco de dados MariaDB.
version: '3.8'
services:
glpi:
build: .
container_name: glpi_app
ports:
- "8080:80"
volumes:
- glpi_data:/var/www/html
environment:
- TZ=America/Sao_Paulo
db:
image: mariadb:10.11
container_name: glpi_db
environment:
- MYSQL_ROOT_PASSWORD=sua_senha_forte
- MYSQL_DATABASE=glpi
volumes:
- db_data:/var/lib/mysql
volumes:
glpi_data:
db_data: