GLPI установка и настройка: HTTPS, LDAP, inventory, заявки и GLPI Agent

Подробная установка GLPI на Ubuntu
За что бьемся
GLPI ставится за 20-30 минут. Тебе нужен сервер с Linux, PHP, MariaDB, веб-сервер и пара прямых рук. После установки можно сразу подключить LDAP, HTTPS, инвентаризацию через GLPI Agent и настроить заявки.

Если коротко — GLPI это нормальный ITSM и helpdesk, который умеет заявки, inventory, LDAP, базы оборудования, лицензии и плагины. По факту это один из самых адекватных open source инструментов, когда Excel уже не вывозит, а бюджет на ServiceNow вызывает нервный тик.

1. Диагноз

Поднял сервер. Открыл браузер. Получил белую страницу, ошибку PHP или бесконечный редирект. Знакомо?

Чаще всего люди ставят GLPI на старый PHP, забывают расширения, не включают HTTPS и пытаются прикрутить LDAP уже после того, как пользователи начали плодить локальные учетные записи.

За эту статью ты соберешь:

  • GLPI на Ubuntu
  • MariaDB
  • Nginx + PHP-FPM
  • HTTPS через Let’s Encrypt
  • LDAP авторизацию
  • GLPI Agent
  • Inventory
  • Базовые плагины
  • Заявки и категории

На все уйдет около часа. Если сервер свежий и без legacy. Если сервер старый и там живет Apache 2.2 с PHP 5.6, то все не так плохо как ты думаешь. Все намного хуже.

2. Причины, почему GLPI не работает нормально

PHP слишком старый

GLPI любит свежий PHP. Если у тебя древний PHP 7.2 или что-то из эпохи мамонтов, установка закончится страданиями.

Не хватает расширений

Без php-curl, php-gd, php-intl, php-ldap и php-xml часть функций не заработает. LDAP не подключится, картинки не откроются, почта сломается.

Права на директории

GLPI должен писать в files, marketplace, config и sessions. Если права кривые, начнется карнавал из ошибок.

HTTPS не включен

Без HTTPS логины, пароли и LDAP работают как письмо на открытке. Любой может посмотреть, если очень захочет.

LDAP настроен через боль

Люди часто указывают неправильный Base DN, забывают bind user или пытаются искать пользователей по cn вместо sAMAccountName.

3. Рецепт: GLPI установка на Ubuntu

Подготовка сервера

Берем Ubuntu 24.04. Можно 22.04. Меньше приключений будет.

Внимание
Перед установкой обнови систему. Не ставь GLPI на сервер, где уже живет ползоопарка из старых сайтов, PHP разных версий и «временных» тестовых контейнеров трехлетней давности.
 apt update && apt upgrade -y timedatectl set-timezone Europe/Moscow hostnamectl set-hostname glpi 

Установка Nginx, MariaDB и PHP

 apt install -y nginx mariadb-server unzip wget curl software-properties-common apt install -y php8.3 php8.3-fpm php8.3-cli php8.3-mysql php8.3-curl php8.3-gd php8.3-intl php8.3-xml php8.3-mbstring php8.3-bz2 php8.3-zip php8.3-ldap php8.3-imap php8.3-apcu php8.3-opcache 

Проверь версию PHP.

 php -v 

Должно показать PHP 8.3.x.

Создание базы данных

 mysql_secure_installation 

Потом создай базу и пользователя.

 CREATE DATABASE glpidb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'glpiuser'@'localhost' IDENTIFIED BY 'StrongPassword123!'; GRANT ALL PRIVILEGES ON glpidb.* TO 'glpiuser'@'localhost'; FLUSH PRIVILEGES; 

Скачать GLPI

Скачай актуальную версию с официального сайта. Обычно архив лежит на GitHub или на сайте проекта. :contentReference[oaicite:0]{index=0}

 cd /tmp wget https://github.com/glpi-project/glpi/releases/download/10.0.18/glpi-10.0.18.tgz tar -xzf glpi-10.0.18.tgz mv glpi /var/www/ 

Настройка прав

 chown -R www-data:www-data /var/www/glpi find /var/www/glpi -type d -exec chmod 755 {} \; find /var/www/glpi -type f -exec chmod 644 {} \; 

Настройка PHP для GLPI

Открой php.ini.

 nano /etc/php/8.3/fpm/php.ini 

Измени параметры.

 memory_limit = 512M upload_max_filesize = 100M post_max_size = 100M max_execution_time = 300 date.timezone = Europe/Moscow session.cookie_httponly = On 

Перезапусти PHP-FPM.

 systemctl restart php8.3-fpm 

Настройка Nginx для GLPI

 nano /etc/nginx/sites-available/glpi 
 server { listen 80; server_name glpi.example.com; root /var/www/glpi/public; index index.php; location / { try_files $uri /index.php$is_args$args; } location ~ ^/index\.php$ { fastcgi_pass unix:/run/php/php8.3-fpm.sock; fastcgi_split_path_info ^(.+\.php)(/.+)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~ \.php$ { return 404; } location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { expires max; log_not_found off; } } 
 ln -s /etc/nginx/sites-available/glpi /etc/nginx/sites-enabled/ nginx -t systemctl restart nginx 

Схема работы GLPI

 %%{init: { 'theme': 'base', 'themeVariables': { 'primaryColor': '#ffffff', 'primaryTextColor': '#1e293b', 'primaryBorderColor': '#94a3b8', 'lineColor': '#64748b', 'fontSize': '15px', 'fontFamily': 'ui-sans-serif, system-ui, sans-serif' }, 'flowchart': {'curve': 'linear', 'nodeSpacing': 50, 'rankSpacing': 50} }}%% flowchart TD A["Пользователь"] --> B["Nginx"] B --> C["PHP-FPM"] C --> D["GLPI"] D --> E["MariaDB"] D --> F["LDAP"] D --> G["GLPI Agent"] style A fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af style B fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af style C fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d style D fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d style E fill:#f8fafc,stroke:#f97316,stroke-width:2px,color:#9a3412 style F fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af style G fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d

Первый запуск GLPI

Открой браузер и перейди на свой домен.

Появится мастер установки. Выбери язык, прими лицензию, введи параметры базы данных и дождись завершения.

После установки удали install.php.

 rm -f /var/www/glpi/install/install.php 

Практический пример 1: настройка HTTPS для GLPI

Без HTTPS даже не начинай. Особенно если GLPI доступен из интернета.

 apt install -y certbot python3-certbot-nginx certbot --nginx -d glpi.example.com 

Проверь автообновление сертификатов.

 systemctl status certbot.timer certbot renew --dry-run 

После этого у тебя будет нормальный glpi https, а браузер перестанет орать про небезопасное соединение.

Практический пример 2: настройка LDAP в GLPI

LDAP нужен, чтобы пользователи логинились своими доменными учетками.

Открой меню Setup — Authentication — LDAP Directories.

Параметр Пример
Server dc01.company.local
BaseDN DC=company,DC=local
BindDN CN=glpi-bind,CN=Users,DC=company,DC=local
User Filter (objectClass=user)
Login Field sAMAccountName

Если используешь LDAPS, укажи порт 636.

Потом протестируй подключение.

Чем глубже в LDAP, тем страшнее архитектура. Особенно если OU называли люди, которые в 2009 году считали себя очень остроумными.

Практический пример 3: настройка GLPI Agent и inventory

GLPI Agent нужен для автоматической инвентаризации рабочих станций, серверов и ноутбуков.

Скачай glpi agent с официального сайта и установи на клиент.

 wget https://github.com/glpi-project/glpi-agent/releases/download/1.12/glpi-agent-1.12-linux-installer.pl chmod +x glpi-agent-1.12-linux-installer.pl ./glpi-agent-1.12-linux-installer.pl 

Пример конфигурации агента:

 server = https://glpi.example.com/front/inventory.php tag = office no-httpd = 0 lazy = 0 

Запусти агент.

 systemctl enable glpi-agent systemctl restart glpi-agent 

Проверь inventory.

 glpi-agent --debug 

После этого устройства появятся в разделе Assets.

Практический пример 4: настройка заявок в GLPI

Заявки — это сердце GLPI. Без них система превращается в красивый каталог железа.

Создай категории:

  • Проблемы с ПК
  • Сеть
  • VPN
  • Почта
  • Принтеры
  • Доступы

Создай SLA, очереди и шаблоны ответов.

Минимум настрой такие правила:

  • Все заявки по VPN идут сетевикам
  • Все заявки по принтерам идут локальному саппорту
  • Критичные инциденты получают высокий приоритет
  • Заявки старше 24 часов попадают в эскалацию

В сутках 24 часа, в ящике пива 24 банки. Совпадение? Не думаю. Но если заявка висит 24 часа без ответа, кто-то потом будет грустно смотреть в монитор.

Практический пример 5: установка полезных плагинов GLPI

GLPI плагины реально упрощают жизнь. Только не ставь все подряд. Потом будешь разбираться, почему после обновления половина интерфейса умерла.

Плагин Для чего нужен
Fields Дополнительные поля
Dashboard Графики и отчеты
Formcreator Кастомные формы заявок
Data Injection Импорт данных
Reports Отчеты по оборудованию
FusionInventory Расширенная inventory

Ставятся плагины просто.

 cd /var/www/glpi/plugins wget https://github.com/pluginsGLPI/dashboard/releases/download/1.0.0/glpi-dashboard.tar.bz2 tar -xjf glpi-dashboard.tar.bz2 chown -R www-data:www-data /var/www/glpi/plugins 

4. Проверка

Проверь, что все сервисы живы.

 systemctl status nginx systemctl status mariadb systemctl status php8.3-fpm systemctl status glpi-agent 

Проверь HTTPS.

 curl -I https://glpi.example.com 

Проверь базу.

 mysql -u glpiuser -p glpidb 

Проверь логи.

 tail -f /var/log/nginx/error.log tail -f /var/log/php8.3-fpm.log tail -f /var/log/syslog 

5. Осложнения

Ошибка 500
Чаще всего проблема в PHP, правах или неверной конфигурации Nginx.
 tail -f /var/log/nginx/error.log tail -f /var/log/php8.3-fpm.log 
LDAP не подключается
Проверь порт, BaseDN, BindDN и DNS.
 ldapsearch -x -H ldap://dc01.company.local -D "CN=glpi-bind,CN=Users,DC=company,DC=local" -W -b "DC=company,DC=local" 
GLPI Agent не отправляет inventory
Чаще всего указан неверный URL inventory.php или HTTPS сертификат не доверенный.
 glpi-agent --debug curl -k https://glpi.example.com/front/inventory.php 
Белая страница вместо интерфейса
Включи отображение ошибок PHP.
 display_errors = On error_reporting = E_ALL 

6. Альтернативы GLPI

Система Плюсы Минусы
Zammad Красивый helpdesk Слабее inventory
OTRS Мощные процессы Сложнее настройка
iTop Хороший CMDB Не такой удобный интерфейс
Jira Service Management Интеграции и автоматизация Дорого

GLPI хорош тем, что умеет и helpdesk, и inventory, и LDAP, и плагины. Такой швейцарский нож для админа, только без цены как у самолета.

7. Профилактика

  • Делай бэкап базы каждый день
  • Сохраняй директорию files и config
  • Обновляй GLPI и плагины отдельно
  • Следи за сроком сертификатов HTTPS
  • Проверяй LDAP после обновления домена
  • Не ставь плагины сразу в прод
  • Документируй настройки

Одна строка в crontab без комментария убивает весь отдел. Особенно если она удаляет старые бэкапы.

 0 2 * * * mysqldump -u root -p'StrongPassword' glpidb > /backup/glpi-$(date +\%F).sql 

8. FAQ

Почему GLPI не открывается после установки?

Проверь Nginx, PHP-FPM, права на директории и логи. Обычно проблема в конфиге веб-сервера или отсутствующем расширении PHP.

Как проверить, работает ли GLPI Agent?

Запусти debug-режим и посмотри, отправляются ли inventory данные.

 glpi-agent --debug 

Что если LDAP не видит пользователей?

Проверь BaseDN, фильтр, логин пользователя bind и DNS. Очень часто проблема в OU или неправильном атрибуте входа.

Почему после обновления GLPI сломались плагины?

Потому что версии плагинов должны совпадать с версией GLPI. Не обновляй все сразу. Сначала тестовый стенд, потом прод.

9. Прогноз

Теперь у тебя есть рабочий GLPI с HTTPS, LDAP, inventory, заявками и агентом. Пользователи логинятся через домен, железо подтягивается автоматически, заявки сортируются по категориям.

Самое приятное начинается потом. Когда бухгалтерия больше не пишет в Telegram «у меня принтер не работает», а создает заявку как цивилизованные люди.

Резюме
Сделай бэкап. Проверь обновления. Запиши настройки LDAP. Потом открой пиво и посмотри на красивый список инвентаризации. Если не заработало — пиши, разберёмся.
Андрей Анатольевич
Author: Андрей Анатольевич

Руководитель ИТ / Кризис-менеджер 25 лет в IT: от инженера в МегаФоне до руководителя отдела. Знаю, как выглядит бардак: нестабильные сети, устаревшая инфраструктура, конфликты в команде, раздутые сроки. Помогаю бизнесу выходить из кризиса: навожу порядок в легаси, стабилизирую то, что разваливается, выстраиваю прогнозируемые процессы. Не раз возвращал к жизни ИТ-структуры — знаю цену хаосу. 📍 Ищу проект для полной реорганизации / стабилизации. 📬 Telegram: @over_dude ✉️ mail@it-apteka.com

Оставайтесь на связи

Рецепты от IT-боли. Без воды, без рекламы, без маркетинговой шелухи.

Подписаться на IT-Аптеку →

Мы ВКонтакте

IT-Аптека — советы, новости и помощь рядом.

Вступить в группу ВКонтакте →
Поделитесь:

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх