GLPI 11: instalação em Linux

Sumário

Neste tutorial, irei explicar como instalar o GLPI 11 em Linux (Ubuntu 24.04) com Apache2, PHP 8.3 em FPM e MariaDB.

O GLPI 11 é uma solução de Gestão de Serviços de TI (ITSM) de código aberto que gere equipamentos, utilizadores, tickets de incidentes e pedidos de serviço. Esta versão oferece uma interface modernizada, uma usabilidade melhorada e um desempenho melhorado. Integra nativamente ferramentas de gestão de projetos, base de conhecimento e inventário. O GLPI 11 também reforça a segurança e facilita a integração com outros sistemas através de APIs REST.

À data em que este tutorial foi escrito, o GLPI 11 ainda se encontrava na versão Beta.

Pré-requisitos para a implementação do GLPI

Para executar o GLPI, precisa de um servidor web e PHP. Neste tutorial, iremos instalar o Apache2 e o PHP diretamente no servidor utilizando os repositórios PPA, o que nos permitirá ter as versões mais recentes do Apache2 e do PHP.

Para a parte do servidor de base de dados, vamos implementar um servidor MariaDB 11 utilizando o Docker.

Como complemento ao final deste tutorial, explico também como configurar o GLPI para utilizar o Redis como sistema de cache.

Deve também fornecer um nome DNS como glpi.domain.tld.

Instalar o Docker e o Docker Compose

Para começar, terá de instalar o Docker e o Docker Compose que iremos utilizar para o servidor de base de dados e o servidor Redis. Convido-o a seguir primeiro este tutorial: Ubuntu 24.04: Instalar o Docker e o Docker Compose

Instalar o Apache2

Para começar, vamos instalar o servidor web Apache2 a partir do repositório PPA for Apache 2 .

Comece por digitar o seguinte comando:

sudo add-apt-repository ppa:ondrej/apache2

Atualizar a cache do pacote:

sudo apt update

Na captura de ecrã, podemos ver que foi consultado o repositório ondrej/apache2.

Inicie a instalação do Apache2

sudo apt install apache2 -y

Aguarde enquanto instalamos…

O Apache2 está instalado, digite o seguinte comando para verificar se o serviço foi iniciado:

sudo systemctl status apache2

O GLPI necessita do módulo Rewrite para funcionar, vamos agora ativá-lo, digite o seguinte comando:

sudo a2enmod rewrite

O GLPI necessita do módulo Rewrite para funcionar, vamos agora ativá-lo, digite o seguinte comando:

sudo systemctl restart apache2

Para testar o servidor web Apache2, abra um navegador de internet e introduza o endereço IP do servidor (http://a.b.c.d ) como URL. Deverá ver a seguinte página:

O servidor Apache2 está instalado e a funcionar.

Instalação do PHP-FPM para GLPI

O PHP é a linguagem utilizada do lado do servidor, para a geração dinâmica de páginas, mas também para lidar com toda a parte de inventário e várias tarefas automáticas utilizando o CRON.

Por razões de “desempenho” e separação de serviços ao nível do servidor web Apache2, iremos instalar o PHP-FPM.

O PHP-FPM (FastCGI Process Manager) é um método poderoso para executar código PHP num servidor web. Permite uma melhor gestão dos processos PHP, maior velocidade de execução e redução da carga do servidor. O PHP-FPM oferece também maior estabilidade, especialmente sob tráfego intenso, e permite configurações mais detalhadas (por site ou aplicação). Atualmente é o método recomendado com o Nginx e é também muito utilizado com o Apache.

Tal como acontece com o Apache2, iremos utilizar o repositório ppa:ondrej/php, que nos permite ter a versão mais atualizada do PHP 8.3 no Ubuntu.

Comece por adicionar o repositório com o seguinte comando:

sudo add-apt-repository ppa:ondrej/php

Depois de o repositório ser adicionado, digite o seguinte comando:

sudo apt update

Agora que já instalámos o PHP 8.3, digite o seguinte comando:

sudo apt install php8.3-fpm -y

Instalar add-ons PHP para GLPI 11:

sudo apt install php8.3-curl php8.3-gd php8.3-intl php8.3-mysql php8.3-bz2 php8.3-zip php8.3-apcu php8.3-cli php8.3-imap php8.3-mbstring php8.3-dom php8.3-simplexml php8.3-xmlreader php8.3-xmlwriter php8.3-bcmath php8.3-redis -y

Se planeia ligar o LDAP a uma Active Directory, deve também instalar o módulo ldap do PHP:

sudo apt install php8.3-ldap -y

Com o PHP instalado, começaremos por activar os módulos necessários para utilizar o PHP-FPM no Apache2, para isso digite o seguinte comando:

sudo a2enmod proxy_fcgi setenvif

Reinicie o serviço Apache2:

sudo systemctl restart apache2

Ora, existem várias formas de fazer com que o Apache2 comunique com o PHP-FPM, sendo o servidor dedicado ao GLPI com uma única versão do PHP, vamos activar a configuração disponível directamente no Apache2, digite o seguinte comando:

sudo a2enconf php8.3-fpm

Reinicie novamente o serviço Apache2:

sudo systemctl restart apache2

Iremos testar a instalação do PHP, para tal iremos criar um ficheiro PHP com a função phpinfo(); que irá retornar as informações sobre a instalação do PHP.

Crie o ficheiro:

sudo nano /var/www/html/phpinfo.php

No ficheiro adicione as seguintes linhas:

<?php
phpinfo();
?>

Assim, num browser chamado página phpinfo.php (http://a.b.c.d/phpinfo.php ), deve ter isto:

Como se pode observar na API do servidor, o PHP é executado no modo FPM/FastCGI.

Configuração do contentor MariaDB

O último elemento do nosso servidor necessário para executar o GLPI 11 é a base de dados, como explicado no início deste tutorial, iremos utilizar o Docker para executar a base de dados MariaDB para o GLPI.

A utilização do Docker permitir-nos-á libertar os repositórios do Ubuntu para a nossa base de dados, o que também permite atualizações mais rápidas. Existem outras vantagens, mas isso está fora do âmbito deste tutorial.

Crie a pasta para armazenamento do contentor:

sudo mkdir /containers/mariadb-glpi

Vá para a pasta da pasta:

cd /containers/mariadb-glpi

Clone o seguinte repositório que contém os ficheiros de configuração do contentor para o mariadb:

sudo git clone https://git.rdr-it.com/docker/mariadb-or-mysql-container.git .

Edite o ficheiro . env

sudo nano .env

Eis o conteúdo que precisa de colocar (gerar passwords):

Descarregue a imagem do contentor:

sudo docker compose pull

Inicie o contentor:

sudo docker compose up -d

O servidor de base de dados está pronto.

Télécharger GLPI 11

Passaremos para o download do GLPI.

Antes de começar, crie a pasta que será utilizada para alojar os ficheiros GLPI:

sudo mkdir -p /var/www/glpi

Vá para a pasta pessoal do seu utilizador:

cd

Na página: https://github.com/glpi-project/glpi/releases copie o url do ficheiro (ficheiro tgz) da última versão disponível do GLPI 11.

Descarregue o ficheiro:

wget https://github.com/glpi-project/glpi/releases/download/11.0.0-beta5/glpi-11.0.0-beta5.tgz

O ficheiro descarregado descompacta o ficheiro:

tar -xvzf glpi-11.0.0-beta5.tgz

Mova os ficheiros GLPI 11 para a pasta destinada ao Apache2:

sudo mv glpi/* /var/www/glpi

Último passo, altere o proprietário da pasta /var/www/glpi:

sudo chown www-data:www-data /var/www/glpi/ -R

Configurar o virtualhost para GLPI 11 no Apache2

Último passo com as linhas de comando ;) Vamos configurar o virtualhost no Apache2 para o GLPI 11.

Aceda à pasta /etc/apache2/sites-available/

cd /etc/apache2/sites-available/

Copie o ficheiro virtualhost padrão:

sudo cp 000-default.conf glpi.conf

Edite o ficheiro:

nano glpi.conf

Aqui está o ficheiro virtualhost para o GLPI 11, adapte o ServerName com o registo DNS que escolheu.

<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        ServerName glpi.demo.lab

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/glpi/public

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/glpi-error.log
        CustomLog ${APACHE_LOG_DIR}/glpi-access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf

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

            RewriteEngine On

            # Ensure authorization headers are passed to PHP.
            # Some Apache configurations may filter them and break usage of API, CalDAV, ...
            RewriteCond %{HTTP:Authorization} ^(.+)$
            RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

            # Redirect all requests to GLPI router, unless file exists.
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ index.php [QSA,L]
        </Directory>

</VirtualHost>

Ativar virtualhost:

sudo a2ensite glpi

Recarregar a configuração do Apache2

sudo systemctl reload apache2

A configuração ao nível do servidor está concluída.

Instalar o GLPI 11

Num navegador de Internet, introduza o URL que escolheu para o GLPI e, na página que aparece, clique em Ir para a página de instalação 1 .

GLPI 11 - Home Page for install

Comece por selecionar o idioma 1 e clicar no botão OK 2 .

Aceite a licença clicando em Continuar 1 .

Aqui iremos fazer uma nova instalação do GLPI 11, clique no botão Instalar 1 .

Verifique se os pré-requisitos do ambiente foram cumpridos e clique no botão Continuar 1 na parte inferior da página.

Configure as informações de ligação à base de dados 1 (Servidor, Utilizador e Palavra-passe) e clique no botão Continuar 2 .

A ligação ao servidor MariaDB que está num contentor está funcional, selecione a base de dados glpi 1 e clique no botão Continuar 2 .

Aguarde enquanto a base de dados é inicializada…

GLPI 11 - Database creation

A base de dados do GLPI 11 foi inicializada e todas as tabelas e dados padrão foram injetados. Clique no botão Continuar 1 .

Configure a recolha de dados 1 se desejar e clique no botão Continuar 2 .

Salte o passo 5 e clique em Continuar 1 .

A instalação do GLPI estiver concluída, clique no botão Utilizar GLPI 1 .

Será redirecionado para a página de login do GLPI 11.

Ligar ao GLPI 11 e descobrir

Para a primeira ligação, utilize o identificador glpi 1 e a palavra-passe glpi 2 e clique em Ligar 3 .

Após efetuar o login, chega à página inicial do GLPI, que agrupa vários painéis com estatísticas.

Como pode ver, as estatísticas não estão a 0, isto é normal, por defeito o GLPI 11 apresenta os dados de demonstração, é possível “apagá-los” clicando em Desativar demonstração.

Verifique os dados do ambiente

No menu Configuração 1 , clique em Geral 2 , aqui encontrará diversas informações do ambiente de aplicação GLPI 11.

Configurar o Redis Cache

Por predefinição, o GLPI utiliza um sistema de cache baseado em ficheiros. Em ambientes onde o GLPI é muito utilizado, o Redis pode ser utilizado como um sistema de cache, o que melhora o desempenho.

O Redis é uma base de dados NoSQL de código aberto, em memória, utilizada principalmente como cache, fila ou armazenamento ultrarrápido de chave-valor. Armazena dados diretamente na RAM, permitindo tempos de resposta extremamente rápidos (em milissegundos). O Redis suporta estruturas de dados avançadas, como listas, conjuntos, hashes, conjuntos classificados e bitmaps. É frequentemente utilizado para melhorar o desempenho de aplicações web, gerir sessões ou executar pub/sub. O Redis também pode ser persistente, gravando dados periodicamente em disco. Suporta alta disponibilidade através de motores como o Redis Sentinel ou o Redis Cluster.

Na secção Desempenho 1 tem informações sobre a cache GLPI, como pode ver na captura de ecrã abaixo, por defeito estamos em “sistema de ficheiros”.

Para facilitar a “instalação” do Redis, iremos implementar o serviço num contentor com o Docker, tal como fizemos para a base de dados MariaDB.

De volta ao servidor via SSH, vá para a pasta /containers/ e crie a pasta para o contentor Redis.

cd /containers
sudo mkdir redis-glpi
cd redis-glpi

Crie o ficheiro docker-compose.yml.

sudo nano docker-compose.yml

Copie o seguinte conteúdo para o ficheiro docker-compose.yml:

services:
  redis-glpi:
    image: redis
    restart: always
    ports:
      - 6379:6379
    volumes:
      - ./data:/data

Descarregue a imagem do contentor Redis:

sudo docker compose pull

Inicie o contentor:

sudo docker compose up -d

De seguida, vá para a pasta de instalação do GLPI 11:

cd /var/www/glpi

Introduza o seguinte comando para configurar a cache Redis no GLPI 11:

sudo php bin/console cache:configure --context core --dsn redis://127.0.0.1:6379/1

Dependendo do utilizador utilizado no SSH, deve confirmar a execução do comando.

De volta à página Desempenho do GLPI 11, actualize a página e verá que o Redis está configurado.

Continuar na configuração do GLPI 11

Este tutorial está a chegar ao fim, outros chegarão no GLPI 11, que pode fazer agora:

  • Apague a pasta de instalação do GLPI
  • Changer le mot de passe du compte glpi
  • Desativar ou eliminar outros utilizadores.

Se está habituado ao GLPI 10, pode ver que ambas as versões são semelhantes na interface e na configuração de outros elementos, como a ligação LDAP, SMTP…

Conclusão

A travers ce tutoriel, vous avez vu comment configurer un environnement LAMP spécifique pour GLPI sur Ubuntu 24.04, en configurant Apache2, PHP-FPM et des services avec Docker (MariaDB et Redis).

Existe uma infinidade de ambientes para instalar o GLPI e aqui vimos UMA das possibilidades.

Se tiver alguma dúvida, pergunte nos comentários.

Romain Drouche

Romain Drouche

Architecte Système | MCSE: Core Infrastructure

Expert en infrastructures IT avec plus de 15 ans d'expérience sur le terrain. Actuellement Chef de projet Systèmes et Réseaux et Référent SSI (Sécurité des Systèmes d'Information), je mets mon expertise au service de la fiabilité et de la sécurité des environnements technologiques.

GHinM▶