Гид по технологиям

Установка GLPI на Debian 12 с LAMP и Let's Encrypt

• 7 min read • DevOps • Обновлено 21 Nov 2025
Установка GLPI на Debian 12 — LAMP и Let's Encrypt
Установка GLPI на Debian 12 — LAMP и Let's Encrypt

О чём эта инструкция

GLPI — это свободная PHP‑система для управления IT‑активами, заявками (Helpdesk), контрактами и отчётностью. Руководство показывает установку GLPI на Debian 12, развёртывание через Apache2 + MariaDB + PHP, получение сертификата от Let’s Encrypt и рекомендации по безопасной эксплуатации.

Важно: все команды выполняются от пользователя с sudo‑привилегиями. Подставляйте ваши домены, пароли и таймзоны в примерах.


Ключевые варианты использования

  • Внедрение ITSM/ITAM в локальной сети или в облаке.
  • Учёт оборудования, ПО и контрактов.
  • Интеграция с мониторингом и системой билетов.

Требования перед началом

  • Сервер с Debian 12.
  • Непользователь root с sudo‑правами.
  • Домен, указывающий на IP сервера (A/AAAA запись).
  • Рекомендуется статический IP на сервере.

Быстрый обзор шагов

  1. Установить LAMP‑стек и требуемые PHP‑модули.
  2. Настроить и обезопасить MariaDB.
  3. Настроить PHP (php.ini) и проверить phpinfo().
  4. Скачать и развернуть GLPI, установить права.
  5. Настроить виртуальный хост Apache.
  6. Получить и установить сертификат Let’s Encrypt (Certbot).
  7. Пройти установщик через веб‑интерфейс и удалить установщик.

Установка зависимостей и LAMP

Обновим индекс пакетов и установим Apache2, MariaDB, PHP и рекомендуемые расширения для GLPI.

sudo apt update && sudo apt upgrade -y
sudo apt install -y apache2 mariadb-server php php-common php-mysql libapache2-mod-php php-gd php-curl php-json php-xmlrpc php-intl php-bcmath php-zip php-apcu php-mbstring php-fileinfo php-xml php-soap

Примечание: GLPI требует ряда PHP‑расширений; список выше покрывает большинство сценариев. При необходимости добавьте расширения из логов phpinfo или требований версии GLPI.

Обновление репозитория и установка пакетов

Проверим, что службы запущены:

sudo systemctl is-enabled apache2 && sudo systemctl status apache2 --no-pager
sudo systemctl is-enabled mariadb && sudo systemctl status mariadb --no-pager
php -v
php -m

Если Apache не запущен, посмотрите вывод journalctl -u apache2 для отладки.

Проверка статуса Apache2

Проверка статуса MariaDB

Проверка версии PHP и модулей

Включите модуль rewrite для Apache:

sudo a2enmod rewrite
sudo systemctl restart apache2

Важно: при использовании брандмауэра (ufw) откройте порты:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Если вы используете облачного провайдера, откройте порты на уровне VPC/NSG/Firewall.


Настройка MariaDB (безопасная установка и создание БД)

Запустите утилиту безопасной настройки MariaDB:

sudo mariadb-secure-installation

Рекомендуемые ответы:

  • Switch to unix_socket authentication? Обычно n (если хотите оставить стандартный парольный вход — но по умолчанию на Debian часто включён unix_socket; выберите в зависимости от ваших требований).
  • Set root password? y — установите надёжный пароль.
  • Remove anonymous users? y.
  • Disallow root login remotely? y.
  • Remove test database? y.
  • Reload privilege tables? y.

Создадим отдельную базу и пользователя только для GLPI. Обязательно замените p4ssw0rd на сложный пароль.

sudo mariadb -u root -p
CREATE DATABASE glpidb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'glpi'@'localhost' IDENTIFIED BY 'p4ssw0rd';
GRANT ALL PRIVILEGES ON glpidb.* TO 'glpi'@'localhost';
FLUSH PRIVILEGES;
SHOW GRANTS FOR 'glpi'@'localhost';
EXIT;

Проверка прав показана на скриншоте:

Создание базы данных и пользователя MariaDB

Проверка привилегий пользователя glpi

Совет по безопасности: вместо права ALL PRIVILEGES можно ограничивать набор операций, если требуется более строгая сегрегация ролей.


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

Отредактируйте конфигурацию PHP‑FPM/Apache (для Apache2 с модулем mod_php это /etc/php/8.2/apache2/php.ini).

sudo nano /etc/php/8.2/apache2/php.ini

Рекомендуемые параметры (подставьте свою временную зону):

memory_limit = 512M
upload_max_filesize = 32M
post_max_size = 32M
date.timezone = Europe/Moscow
session.cookie_httponly = On
opcache.enable = 1
opcache.memory_consumption = 128

Сохраните и перезапустите Apache:

sudo systemctl restart apache2

Создайте временный phpinfo для проверки и затем удалите его:

echo "" | sudo tee /var/www/html/info.php
# Откройте http:///info.php в браузере
# После проверки удалите файл
sudo rm /var/www/html/info.php

Вывод phpinfo

Важно: никогда не оставляйте phpinfo.php на продакшн‑сервере — он раскрывает детали конфигурации.


Скачивание и установка исходников GLPI

Перейдите в каталог /var/www и скачайте последнюю стабильную сборку GLPI с GitHub. Проверяйте страницу релизов GLPI на предмет актуальной версии.

cd /var/www/
sudo wget https://github.com/glpi-project/glpi/releases/download/10.0.9/glpi-10.0.9.tgz
sudo tar -xf glpi-10.0.9.tgz
sudo chown -R www-data:www-data /var/www/glpi
sudo chmod u+rw /var/www/glpi/{files,config}

Если хотите, можно развернуть в поддиректорию и использовать Alias вместо DocumentRoot.


Скачивание и распаковка GLPI

Настройка виртуального хоста Apache для GLPI

Создайте конфигурацию сайта /etc/apache2/sites-available/glpi.conf:

sudo nano /etc/apache2/sites-available/glpi.conf

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


    ServerName glpi.example.io
    DocumentRoot /var/www/glpi/public

    
        Require all granted
        AllowOverride None

        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php [QSA,L]
    

    ErrorLog ${APACHE_LOG_DIR}/glpi_error.log
    CustomLog ${APACHE_LOG_DIR}/glpi_access.log combined

Активируйте сайт и проверьте синтаксис Apache:

sudo a2ensite glpi.conf
sudo apachectl configtest
sudo systemctl reload apache2

Если Syntax OK — перезагрузите сервис.

Настройка виртуального хоста


SSL: получение сертификата с помощью Certbot

Установите Certbot и плагин для Apache:

sudo apt install -y certbot python3-certbot-apache

Запустите Certbot для вашего домена (замените email и домен):

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d glpi.example.io

Проверьте автоматическое обновление сертификатов:

sudo certbot renew --dry-run

Cron или systemd таймер Certbot обычно устанавливается автоматически. Убедитесь, что бэкапы конфигурации и запись в журнале успешны.

Установка Certbot


Завершение установки через веб‑интерфейс

Откройте https://glpi.example.io/ — вас перенаправит на установщик GLPI.

  1. Выберите язык и нажмите OK.

Выбор языка

  1. Примите лицензию и нажмите Continue.

Лицензия GLPI

  1. Нажмите Install, пройдите проверку требований, заполните данные БД (имя БД glpidb, пользователь glpi).

Установка GLPI

Проверка требований сервера

Ввод данных БД

Выберите базу glpidb и продолжите. Установка проинициализирует структуру и создаст стандартные учетные записи (glpi/glpi и др.).

Выбор базы данных

Инициализация базы данных GLPI

После установки перейдите к настройке учётной записи администратора и измените пароли для дефолтных пользователей.

Настройки отправки данных (collect data)

Установка завершена — конфигурация

Установка завершена

Страница входа в GLPI

Панель управления GLPI

Не забудьте удалить скрипт установки:

sudo rm /var/www/glpi/public/install/install.php

Изменение пароля администратора


Базовое усиление безопасности

  1. Ограничьте доступ к административной панели по IP (в конфигурации Apache или на уровне брандмауэра).
  2. Включите двухфакторную аутентификацию (если доступно через плагины).
  3. Используйте отдельного пользователя БД с минимальными привилегиями.
  4. Регулярно обновляйте систему и GLPI.
  5. Включите fail2ban для защиты SSH и HTTP от брут‑форса.

Пример настройки fail2ban для Apache (базово):

sudo apt install -y fail2ban
sudo tee /etc/fail2ban/jail.local > /dev/null <<'EOF'
[sshd]
enabled = true

[apache-auth]
enabled = true
EOF
sudo systemctl restart fail2ban

Резервное копирование и восстановление

Рекомендуется автоматизировать бэкапы MySQL/MariaDB и файлов GLPI (/var/www/glpi/files и /var/www/glpi/config).

Пример простого скрипта резервного копирования (mysqldump + tar):

#!/bin/bash
BACKUP_DIR=/var/backups/glpi
mkdir -p "$BACKUP_DIR"
DATE=$(date +%F_%H%M)
mysqldump -u root -p'your_root_password' glpidb > "$BACKUP_DIR/glpidb_$DATE.sql"
tar -czf "$BACKUP_DIR/glpi_files_$DATE.tar.gz" -C /var/www/glpi files config
find "$BACKUP_DIR" -type f -mtime +30 -delete

Сохраните как /usr/local/bin/glpi-backup.sh, сделайте исполняемым и добавьте в cron:

sudo chmod +x /usr/local/bin/glpi-backup.sh
sudo crontab -e
# Добавьте строку для ежедневного бэкапа в 3:00
0 3 * * * /usr/local/bin/glpi-backup.sh

Критерии приёмки

  • Веб‑интерфейс GLPI доступен по HTTPS и корректно отвечает.
  • Пользователь glpi может войти с новым паролем.
  • База glpidb проинициализирована и таблицы созданы.
  • Резервная копия базы и файлов успешно создаётся.

Рекомендации по эксплуатации и обслуживание

  • План обновлений: тестируйте обновление GLPI на тестовом стенде перед продакшном.
  • Мониторинг: следите за нагрузкой PHP/Apache и размером таблиц БД.
  • Логи: сохраняйте логи Apache и GLPI отдельно и настраивайте ротацию логов.

Альтернативные варианты развёртывания

  • Nginx + PHP‑FPM: рекомендуется для высокой нагрузки; потребуется другой конфиг и переработка правил переписывания.
  • Контейнеризация: GLPI можно запускать в Docker/Kubernetes (официальных контейнеров нет в core — используйте тщательно протестированные образы).
  • Использование внешней СУБД (удалённый MariaDB/MySQL) — учитывайте задержки сети и безопасность соединения.

Частые ошибки и способы их устранения

  • Ошибка 500 после установки: проверьте права на /var/www/glpi/{files,config} и логи Apache.
  • Проблемы с подключением к БД: убедитесь, что хост в конфигураторе указан localhost, пользователь и пароль верны.
  • Сертификат не выпускается: проверьте, что домен указывает на сервер и порты 80/443 открыты.

Ролевые чек‑листы

Администратор системы (sysadmin):

  • Установить ОС и обновления.
  • Настроить брандмауэр, DNS и мониторинг.
  • Установить LAMP и Certbot.
  • Настроить резервное копирование и ротацию логов.

Администратор БД (DBA):

  • Создать базу glpidb и пользователя с паролем.
  • Настроить регулярные дампы и проверку целостности бэкапов.
  • Следить за производительностью запросов.

Администратор GLPI/Helpdesk:

  • Настроить параметры уведомлений и SLA.
  • Создать структуры каталога активов и шаблоны тикетов.
  • Установить и проверить права пользователей и профилей.

План отката и аварийное восстановление

  1. При обновлении GLPI: перед началом — полный бэкап базы и каталога /var/www/glpi.
  2. Если обновление прошло некорректно — восстановите дамп БД и tar‑архив файлов.
  3. Пример восстановления БД:
mysql -u root -p glpidb < /var/backups/glpi/glpidb_YYYY-MM-DD_HHMM.sql
  1. Восстановление файлов:
tar -xzf /var/backups/glpi/glpi_files_YYYY-MM-DD_HHMM.tar.gz -C /var/www/glpi
sudo chown -R www-data:www-data /var/www/glpi

Тесты и критерии приёмки

Тесты, которые должен пройти продакшн‑инстанс:

  • HTTP→HTTPS редирект работает.
  • Вход по административной учётной записи успешен и можно сменить пароль.
  • Создание и закрытие тикета работает.
  • Импорт/создание актива и привязка к пользователю проходит.
  • Регулярный бэкап создаётся и успешно восстанавливается на тестовой системе.

Совместимость и миграция (кратко)

  • При миграции с GLPI 9.x на 10.x: внимательно читайте CHANGELOG и заметки релиза, проверяйте плагины на совместимость.
  • Рекомендуется сделать тестовое обновление на копии БД и данных.

Приватность и соответствие требованиям (GDPR)

  • GLPI хранит персональные данные пользователей и сотрудников.
  • Убедитесь, что доступ к данным ограничен и задокументирован.
  • Настройте политику хранения данных и процессы удаления/анонимизации по требованиям законодательства.

Контроль качества и эксплуатационные метрики (рекомендации)

  • Проверять доступность веб‑интерфейса каждые 1–5 минут (SLA 99.9% для критичных инсталляций).
  • Установить слежение за медленными запросами БД и ростом таблиц.

Короткий чек‑лист после установки

  • SSL успешно установлен и автопродление работает.
  • Права на каталоги /var/www/glpi корректны.
  • Создан бэкап и проверено восстановление.
  • Удалён install.php.
  • Изменён пароль администратора glpi.

Сценарии, когда метод может не подойти

  • Очень большие инсталляции (тысячи пользователей/активов) — требуется тюнинг БД, кеширование и возможная миграция на отдельный сервер БД.
  • Желание контейнеризировать — используйте отдельный план, т.к. конфигурация Apache и хранение файлов потребует адаптации.

Краткое резюме

Вы установили GLPI на Debian 12 с LAMP, получили SSL через Let’s Encrypt и настроили базовые меры безопасности и резервного копирования. Дальше: настройка шаблонов, ролей, интеграция с LDAP/AD, плагины и автоматизация рабочих процессов.

Сохраните и проверяйте бэкапы, планируйте тестовое обновление перед применением апгрейдов в продуктиве.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро