"За
<br />
GLPI ставится за 20-30 минут. Тебе нужен сервер с Linux, PHP, MariaDB, веб-сервер и пара прямых рук. После установки можно сразу подключить LDAP, HTTPS, инвентаризацию через GLPI Agent и настроить заявки.<br />
<p>Если коротко — GLPI это нормальный ITSM и helpdesk, который умеет заявки, inventory, LDAP, базы оборудования, лицензии и плагины. По факту это один из самых адекватных open source инструментов, когда Excel уже не вывозит, а бюджет на ServiceNow вызывает нервный тик.</p>
<h2>1. Диагноз</h2>
<p>Поднял сервер. Открыл браузер. Получил белую страницу, ошибку PHP или бесконечный редирект. Знакомо?</p>
<p>Чаще всего люди ставят GLPI на старый PHP, забывают расширения, не включают HTTPS и пытаются прикрутить LDAP уже после того, как пользователи начали плодить локальные учетные записи.</p>
<p>За эту статью ты соберешь:</p>
<ul>
<li>GLPI на Ubuntu</li>
<li>MariaDB</li>
<li>Nginx + PHP-FPM</li>
<li>HTTPS через Let’s Encrypt</li>
<li>LDAP авторизацию</li>
<li>GLPI Agent</li>
<li>Inventory</li>
<li>Базовые плагины</li>
<li>Заявки и категории</li>
</ul>
<p>На все уйдет около часа. Если сервер свежий и без legacy. Если сервер старый и там живет Apache 2.2 с PHP 5.6, то все не так плохо как ты думаешь. Все намного хуже.</p>
<h2>2. Причины, почему GLPI не работает нормально</h2>
<h3>PHP слишком старый</h3>
<p>GLPI любит свежий PHP. Если у тебя древний PHP 7.2 или что-то из эпохи мамонтов, установка закончится страданиями.</p>
<h3>Не хватает расширений</h3>
<p>Без php-curl, php-gd, php-intl, php-ldap и php-xml часть функций не заработает. LDAP не подключится, картинки не откроются, почта сломается.</p>
<h3>Права на директории</h3>
<p>GLPI должен писать в files, marketplace, config и sessions. Если права кривые, начнется карнавал из ошибок.</p>
<h3>HTTPS не включен</h3>
<p>Без HTTPS логины, пароли и LDAP работают как письмо на открытке. Любой может посмотреть, если очень захочет.</p>
<h3>LDAP настроен через боль</h3>
<p>Люди часто указывают неправильный Base DN, забывают bind user или пытаются искать пользователей по cn вместо sAMAccountName.</p>
<h2>3. Рецепт: GLPI установка на Ubuntu</h2>
<h3>Подготовка сервера</h3>
<p>Берем Ubuntu 24.04. Можно 22.04. Меньше приключений будет.</p>
"Внимание"
<br />
Перед установкой обнови систему. Не ставь GLPI на сервер, где уже живет ползоопарка из старых сайтов, PHP разных версий и "временных" тестовых контейнеров трехлетней давности.<br />
<pre><code class="language-bash"> apt update && apt upgrade -y timedatectl set-timezone Europe/Moscow hostnamectl set-hostname glpi </code></pre>
<h3>Установка Nginx, MariaDB и PHP</h3>
<pre><code class="language-bash"> 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 </code></pre>
<p>Проверь версию PHP.</p>
<pre><code class="language-bash"> php -v </code></pre>
<p>Должно показать PHP 8.3.x.</p>
<h3>Создание базы данных</h3>
<pre><code class="language-bash"> mysql_secure_installation </code></pre>
<p>Потом создай базу и пользователя.</p>
<pre><code class="language-sql"> 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; </code></pre>
<h3>Скачать GLPI</h3>
<p>Скачай актуальную версию с официального сайта. Обычно архив лежит на GitHub или на сайте проекта. :contentReference[oaicite:0]{index=0}</p>
<pre><code class="language-bash"> 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/ </code></pre>
<h3>Настройка прав</h3>
<pre><code class="language-bash"> 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 {} \; </code></pre>
<h3>Настройка PHP для GLPI</h3>
<p>Открой php.ini.</p>
<pre><code class="language-bash"> nano /etc/php/8.3/fpm/php.ini </code></pre>
<p>Измени параметры.</p>
<pre><code class="language-text"> memory_limit = 512M upload_max_filesize = 100M post_max_size = 100M max_execution_time = 300 date.timezone = Europe/Moscow session.cookie_httponly = On </code></pre>
<p>Перезапусти PHP-FPM.</p>
<pre><code class="language-bash"> systemctl restart php8.3-fpm </code></pre>
<h3>Настройка Nginx для GLPI</h3>
<pre><code class="language-bash"> nano /etc/nginx/sites-available/glpi </code></pre>
<pre><code class="language-text"> 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; } } </code></pre>
<pre><code class="language-bash"> ln -s /etc/nginx/sites-available/glpi /etc/nginx/sites-enabled/ nginx -t systemctl restart nginx </code></pre>
<h3>Схема работы GLPI</h3>
<pre class="mermaid"> %%{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</pre>
<h3>Первый запуск GLPI</h3>
<p>Открой браузер и перейди на свой домен.</p>
<p>Появится мастер установки. Выбери язык, прими лицензию, введи параметры базы данных и дождись завершения.</p>
<p>После установки удали install.php.</p>
<pre><code class="language-bash"> rm -f /var/www/glpi/install/install.php </code></pre>
<h2>Практический пример 1: настройка HTTPS для GLPI</h2>
<p>Без HTTPS даже не начинай. Особенно если GLPI доступен из интернета.</p>
<pre><code class="language-bash"> apt install -y certbot python3-certbot-nginx certbot --nginx -d glpi.example.com </code></pre>
<p>Проверь автообновление сертификатов.</p>
<pre><code class="language-bash"> systemctl status certbot.timer certbot renew --dry-run </code></pre>
<p>После этого у тебя будет нормальный glpi https, а браузер перестанет орать про небезопасное соединение.</p>
<h2>Практический пример 2: настройка LDAP в GLPI</h2>
<p>LDAP нужен, чтобы пользователи логинились своими доменными учетками.</p>
<p>Открой меню Setup — Authentication — LDAP Directories.</p>
<table>
<tbody>
<tr>
<th>Параметр</th>
<th>Пример</th>
</tr>
<tr>
<td>Server</td>
<td>dc01.company.local</td>
</tr>
<tr>
<td>BaseDN</td>
<td>DC=company,DC=local</td>
</tr>
<tr>
<td>BindDN</td>
<td>CN=glpi-bind,CN=Users,DC=company,DC=local</td>
</tr>
<tr>
<td>User Filter</td>
<td>(objectClass=user)</td>
</tr>
<tr>
<td>Login Field</td>
<td>sAMAccountName</td>
</tr>
</tbody>
</table>
<p>Если используешь LDAPS, укажи порт 636.</p>
<p>Потом протестируй подключение.</p>
<p>Чем глубже в LDAP, тем страшнее архитектура. Особенно если OU называли люди, которые в 2009 году считали себя очень остроумными.</p>
<h2>Практический пример 3: настройка GLPI Agent и inventory</h2>
<p>GLPI Agent нужен для автоматической инвентаризации рабочих станций, серверов и ноутбуков.</p>
<p>Скачай glpi agent с официального сайта и установи на клиент.</p>
<pre><code class="language-bash"> 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 </code></pre>
<p>Пример конфигурации агента:</p>
<pre><code class="language-text"> server = https://glpi.example.com/front/inventory.php tag = office no-httpd = 0 lazy = 0 </code></pre>
<p>Запусти агент.</p>
<pre><code class="language-bash"> systemctl enable glpi-agent systemctl restart glpi-agent </code></pre>
<p>Проверь inventory.</p>
<pre><code class="language-bash"> glpi-agent --debug </code></pre>
<p>После этого устройства появятся в разделе Assets.</p>
<h2>Практический пример 4: настройка заявок в GLPI</h2>
<p>Заявки — это сердце GLPI. Без них система превращается в красивый каталог железа.</p>
<p>Создай категории:</p>
<ul>
<li>Проблемы с ПК</li>
<li>Сеть</li>
<li>VPN</li>
<li>Почта</li>
<li>1С</li>
<li>Принтеры</li>
<li>Доступы</li>
</ul>
<p>Создай SLA, очереди и шаблоны ответов.</p>
<p>Минимум настрой такие правила:</p>
<ul>
<li>Все заявки по VPN идут сетевикам</li>
<li>Все заявки по принтерам идут локальному саппорту</li>
<li>Критичные инциденты получают высокий приоритет</li>
<li>Заявки старше 24 часов попадают в эскалацию</li>
</ul>
<p>В сутках 24 часа, в ящике пива 24 банки. Совпадение? Не думаю. Но если заявка висит 24 часа без ответа, кто-то потом будет грустно смотреть в монитор.</p>
<h2>Практический пример 5: установка полезных плагинов GLPI</h2>
<p>GLPI плагины реально упрощают жизнь. Только не ставь все подряд. Потом будешь разбираться, почему после обновления половина интерфейса умерла.</p>
<table>
<tbody>
<tr>
<th>Плагин</th>
<th>Для чего нужен</th>
</tr>
<tr>
<td>Fields</td>
<td>Дополнительные поля</td>
</tr>
<tr>
<td>Dashboard</td>
<td>Графики и отчеты</td>
</tr>
<tr>
<td>Formcreator</td>
<td>Кастомные формы заявок</td>
</tr>
<tr>
<td>Data Injection</td>
<td>Импорт данных</td>
</tr>
<tr>
<td>Reports</td>
<td>Отчеты по оборудованию</td>
</tr>
<tr>
<td>FusionInventory</td>
<td>Расширенная inventory</td>
</tr>
</tbody>
</table>
<p>Ставятся плагины просто.</p>
<pre><code class="language-bash"> 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 </code></pre>
<h2>4. Проверка</h2>
<p>Проверь, что все сервисы живы.</p>
<pre><code class="language-bash"> systemctl status nginx systemctl status mariadb systemctl status php8.3-fpm systemctl status glpi-agent </code></pre>
<p>Проверь HTTPS.</p>
<pre><code class="language-bash"> curl -I https://glpi.example.com </code></pre>
<p>Проверь базу.</p>
<pre><code class="language-bash"> mysql -u glpiuser -p glpidb </code></pre>
<p>Проверь логи.</p>
<pre><code class="language-bash"> tail -f /var/log/nginx/error.log tail -f /var/log/php8.3-fpm.log tail -f /var/log/syslog </code></pre>
<h2>5. Осложнения</h2>
"Ошибка
<br />
Чаще всего проблема в PHP, правах или неверной конфигурации Nginx.<br />
<pre><code class="language-bash"> tail -f /var/log/nginx/error.log tail -f /var/log/php8.3-fpm.log </code></pre>
"LDAP
<br />
Проверь порт, BaseDN, BindDN и DNS.<br />
<pre><code class="language-bash"> ldapsearch -x -H ldap://dc01.company.local -D "CN=glpi-bind,CN=Users,DC=company,DC=local" -W -b "DC=company,DC=local" </code></pre>
"GLPI
<br />
Чаще всего указан неверный URL inventory.php или HTTPS сертификат не доверенный.<br />
<pre><code class="language-bash"> glpi-agent --debug curl -k https://glpi.example.com/front/inventory.php </code></pre>
"Белая
<br />
Включи отображение ошибок PHP.<br />
<pre><code class="language-text"> display_errors = On error_reporting = E_ALL </code></pre>
<h2>6. Альтернативы GLPI</h2>
<table>
<tbody>
<tr>
<th>Система</th>
<th>Плюсы</th>
<th>Минусы</th>
</tr>
<tr>
<td>Zammad</td>
<td>Красивый helpdesk</td>
<td>Слабее inventory</td>
</tr>
<tr>
<td>OTRS</td>
<td>Мощные процессы</td>
<td>Сложнее настройка</td>
</tr>
<tr>
<td>iTop</td>
<td>Хороший CMDB</td>
<td>Не такой удобный интерфейс</td>
</tr>
<tr>
<td>Jira Service Management</td>
<td>Интеграции и автоматизация</td>
<td>Дорого</td>
</tr>
</tbody>
</table>
<p>GLPI хорош тем, что умеет и helpdesk, и inventory, и LDAP, и плагины. Такой швейцарский нож для админа, только без цены как у самолета.</p>
<h2>7. Профилактика</h2>
<ul>
<li>Делай бэкап базы каждый день</li>
<li>Сохраняй директорию files и config</li>
<li>Обновляй GLPI и плагины отдельно</li>
<li>Следи за сроком сертификатов HTTPS</li>
<li>Проверяй LDAP после обновления домена</li>
<li>Не ставь плагины сразу в прод</li>
<li>Документируй настройки</li>
</ul>
<p>Одна строка в crontab без комментария убивает весь отдел. Особенно если она удаляет старые бэкапы.</p>
<pre><code class="language-bash"> 0 2 * * * mysqldump -u root -p'StrongPassword' glpidb > /backup/glpi-$(date +\%F).sql </code></pre>
<h2>8. FAQ</h2>
<h3>Почему GLPI не открывается после установки?</h3>
<p>Проверь Nginx, PHP-FPM, права на директории и логи. Обычно проблема в конфиге веб-сервера или отсутствующем расширении PHP.</p>
<h3>Как проверить, работает ли GLPI Agent?</h3>
<p>Запусти debug-режим и посмотри, отправляются ли inventory данные.</p>
<pre><code class="language-bash"> glpi-agent --debug </code></pre>
<h3>Что если LDAP не видит пользователей?</h3>
<p>Проверь BaseDN, фильтр, логин пользователя bind и DNS. Очень часто проблема в OU или неправильном атрибуте входа.</p>
<h3>Почему после обновления GLPI сломались плагины?</h3>
<p>Потому что версии плагинов должны совпадать с версией GLPI. Не обновляй все сразу. Сначала тестовый стенд, потом прод.</p>
<h2>9. Прогноз</h2>
<p>Теперь у тебя есть рабочий GLPI с HTTPS, LDAP, inventory, заявками и агентом. Пользователи логинятся через домен, железо подтягивается автоматически, заявки сортируются по категориям.</p>
<p>Самое приятное начинается потом. Когда бухгалтерия больше не пишет в <a class="wpil_keyword_link" href="https://t.me/it_apteka_com/34" target="_blank" rel="noopener" title="Telegram" data-wpil-keyword-link="linked" data-wpil-monitor-id="1507">Telegram</a> «у меня принтер не работает», а создает заявку как цивилизованные люди.</p>
"Резюме"
<br />
Сделай бэкап. Проверь обновления. Запиши настройки LDAP. Потом открой пиво и посмотри на красивый список инвентаризации. Если не заработало — пиши, разберёмся.<br />
За что бьемся
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
- Почта
- 1С
- Принтеры
- Доступы
Создай 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. Потом открой пиво и посмотри на красивый список инвентаризации. Если не заработало — пиши, разберёмся.