Instalação

Abaixo segue o passo a passo a ser executado para concluir a instalação do GLPI. Foram seguidas orientações do portal oficial do GLPi que pode ser acessado no link: https://glpi-install.readthedocs.io/pt/latest/

  1. Atualizar o Sistema Operacional
    sudo apt update && sudo apt dist-upgrade -y

  2. Reconfigurar o timezone
    sudo dpkg-reconfigure tzdata

  3. Reiniciar para aplicar as configurações
    sudo shutdown -r now

  4. Instalar Apache, PHP e MySQL e dependências necessárias
    apt install -y \
    apache2 \
    mariadb-server \
    mariadb-client \
    libapache2-mod-php \
    php-dom \
    php-fileinfo \
    php-json \
    php-simplexml \
    php-xmlreader \
    php-xmlwriter \
    php-curl \
    php-gd \
    php-intl \
    php-mysqli \
    php-bz2 \
    php-zip \
    php-exif \
    php-ldap \
    php-opcache \
    php-mbstring

  5. Criar banco de dados do glpi
    mysql -e "CREATE DATABASE glpi"
    mysql -e "GRANT ALL PRIVILEGES ON glpi.* TO 'glpi'@'localhost' IDENTIFIED BY 'senha'"
    mysql -e "GRANT SELECT ON mysql.time_zone_name TO 'glpi'@'localhost'"
    mysql -e "FLUSH PRIVILEGES"
  6. Carregar timezones no MySQL
    mysql_tzinfo_to_sql /usr/share/zoneinfo | sudo mysql -u root mysql

  7. Desabilitar o site padrão do apache2
    a2dissite 000-default.conf

  8. Criar o virtualhost do glpi
    cat << EOF | sudo tee /etc/apache2/sites-available/suporte.conf
    <VirtualHost *:80>
    ServerName suporte.ti.srt.ifsp.edu.br
    DocumentRoot /var/www/glpi/public
    <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>
    EOF

  9. Configuração de segurança para sessões
    Para aumentar a segurança, é recomendável configurar sessões PHP com as seguintes configurações:

     

    session.cookie_secure: deve ser definido on quando o GLPI puder ser acessado somente no protocolo HTTPS;

    session.cookie_httponly: deve ser definido on para impedir que scripts do lado do cliente acessem valores de cookies;

    session.cookie_samesite: deve ser definido, pelo menos, como Lax, para evitar que cookies sejam enviados em solicitações POST de origem cruzada (entre domínios).


    Acesso o arquivo /etc/php/8.3/apache2/php.ini, procure os parâmetros acima e altere conforme orientação.

     

  10. Habilitar o virtualhost
    sudo a2ensite glpi.conf

  11. Habilitar módulos do Apache necessários
    sudo a2enmod rewrite

  12. Reinicia o apache para entrar em vigor
    sudo systemctl restart apache2

  13. Download do glpi
    wget -q https://github.com/glpi-project/glpi/releases/download/10.0.18/glpi-10.0.18.tgz
    ou ultima versão disponivel no github

  14. Descompactar a pasta do GLPI
    tar -zxf glpi-*

  15. Mover a pasta do GLPI para a pasta htdocs
    sudo mv glpi /var/www/glpi

  16. Configurar a permissão na pasta www/glpi
    sudo chown -R www-data:www-data /var/www/glpi/

  17. Finalizar setup do glpi pela linha de comando
    sudo php /var/www/glpi/bin/console db:install \
    --default-language=pt_BR \
    --db-host=localhost \
    --db-port=3306 \
    --db-name=glpi \
    --db-user=glpi \
    --db-password=senha

  18. Remover o arquivo de instalação
    sudo rm /var/www/glpi/install/install.php

  19. Mover pastas do GLPI de forma segura

    O GLPI armazena alguns dados no filesdiretório, a configuração de acesso ao banco de dados é armazenada no configdiretório, etc. Mesmo que o GLPI forneça algumas maneiras de impedir que os arquivos sejam acessados ​​diretamente pelo servidor web, a prática recomendada é armazenar os dados fora da raiz web. Dessa forma, arquivos confidenciais não podem ser acessados ​​diretamente do servidor web.

    mv /var/www/glpi/files /var/lib/glpi
    mv /var/www/glpi/config /etc/glpi
    mkdir /var/log/glpi
    chown -R www-data:www-data /var/lib/glpi
    chown -R www-data:www-data /etc/glpi
    chown -R www-data:www-data /var/log/glpi

  20. Mover pastas do GLPI de forma segura | conf-dir
    cat << EOF | sudo tee /var/www/glpi/inc/downstream.php
    <?php
    define('GLPI_CONFIG_DIR', '/etc/glpi/');
    if (file_exists(GLPI_CONFIG_DIR . '/local_define.php')) {
    require_once GLPI_CONFIG_DIR . '/local_define.php';
    }
    EOF

  21. Mover pastas do GLPI de forma segura | data dir
    cat << EOF | sudo tee /etc/glpi/local_define.php
    <?php
    define('GLPI_VAR_DIR', '/var/lib/glpi');
    define('GLPI_LOG_DIR', '/var/log/glpi');
    EOF

  22. Pós-instalação
    Depois que o GLPI estiver instalado, você estará quase pronto.

    Uma etapa extra seria proteger o diretório de instalação. Como exemplo, você pode considerar adicionar o seguinte à configuração do seu host virtual Apache (ou ao glpi/install/.htaccessarquivo):

    <IfModule mod_authz_core.c>
    Require local
    </IfModule>
    <IfModule !mod_authz_core.c>
    order deny, allow
    deny from all
    allow from 127.0.0.1
    allow from ::1
    </IfModule>
    ErrorDocument 403 "<p><b>Restricted area.</b><br />Only local access allowed.<br />Check your configuration or contact your administrator.</p>"

    Neste exemplo, o acesso ao diretório de instalação será limitado apenas ao host local e exibirá uma mensagem de erro caso contrário

  23. Primeiros Passos
    4.1. Acessar o GLPI via web browser
    4.2. Criar um novo usuário com perfil super-admin
    4.3. Remover os usuários glpi, normal, post-only, tech.
    4.3.1. Enviar os usuários para a lixeira
    4.3.2. Remover permanentemente
    4.3.4. Configurar a url de acesso ao sistema em: Configurar -> Geral -> Configuração Geral -> URL da aplicação.
Apos a conclusão o acesso ao GLPI deve estar concluido.