Установка 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 на сервере.
Быстрый обзор шагов
- Установить LAMP‑стек и требуемые PHP‑модули.
- Настроить и обезопасить MariaDB.
- Настроить PHP (php.ini) и проверить phpinfo().
- Скачать и развернуть GLPI, установить права.
- Настроить виртуальный хост Apache.
- Получить и установить сертификат Let’s Encrypt (Certbot).
- Пройти установщик через веб‑интерфейс и удалить установщик.
Установка зависимостей и 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 для отладки.



Включите модуль 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;Проверка прав показана на скриншоте:


Совет по безопасности: вместо права 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.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.

Настройка виртуального хоста 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-runCron или systemd таймер Certbot обычно устанавливается автоматически. Убедитесь, что бэкапы конфигурации и запись в журнале успешны.

Завершение установки через веб‑интерфейс
Откройте https://glpi.example.io/ — вас перенаправит на установщик GLPI.
- Выберите язык и нажмите OK.

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

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



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


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





Не забудьте удалить скрипт установки:
sudo rm /var/www/glpi/public/install/install.php
Базовое усиление безопасности
- Ограничьте доступ к административной панели по IP (в конфигурации Apache или на уровне брандмауэра).
- Включите двухфакторную аутентификацию (если доступно через плагины).
- Используйте отдельного пользователя БД с минимальными привилегиями.
- Регулярно обновляйте систему и GLPI.
- Включите 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.
- Создать структуры каталога активов и шаблоны тикетов.
- Установить и проверить права пользователей и профилей.
План отката и аварийное восстановление
- При обновлении GLPI: перед началом — полный бэкап базы и каталога /var/www/glpi.
- Если обновление прошло некорректно — восстановите дамп БД и tar‑архив файлов.
- Пример восстановления БД:
mysql -u root -p glpidb < /var/backups/glpi/glpidb_YYYY-MM-DD_HHMM.sql- Восстановление файлов:
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, плагины и автоматизация рабочих процессов.
Сохраните и проверяйте бэкапы, планируйте тестовое обновление перед применением апгрейдов в продуктиве.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента