Установка GLPI на CentOS с Nginx.
Небольшая шпаргалка по установке GLPI на CentOS 8 и Nginx. В статье описана установка GLPI 10.0.7 на «чистый» CentOS 8 с установкой необходимых компонентов(Nginx, php и MariaDB). При установке использовались рекомендации из официальной документации GLPI.
Краткое описание что же такое GLPI из Википедии:
GLPI — аббревиатура для Gestionnaire libre de parc informatique (Свободный менеджер ИТ-инфраструктуры), является системой работы с заявками и инцидентами, а также для инвентаризации компьютерного оборудования (компьютеры, программное обеспечение, принтеры и т.д.). Имеет расширенные функции, такие как работа системы отслеживания почты с уведомлением и методы, для создания базы данных с основной информацией о топологии сети.
Ну что ж, приступим к установке. Все описанные в статье действия выполнялись от учетки root(если что, используйте перед командами sudo).
Подготовка к установке.
Итак, подразумевается, что у вас уже есть установленный CentOS. Давайте обновим его и доустановим некоторые компоненты. Для этого выполните команды:
1 2 3 |
dnf upgrade --refresh -y dnf install nano dnf-utils net-tools wget -y dnf install epel-release |
Настройка файрволла.
1 2 3 |
firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=443/tcp firewall-cmd --reload |
Установка php.
Установим репозиторий remi
1 |
dnf install http://rpms.remirepo.net/enterprise/remi-release-8.rpm -y |
Смотрим доступные версии php
1 |
dnf module list php |
Для десятой версии GLPI требуются версии php 7.4 — 8.1. Давайте установим самую максимально возможную(8.1).
1 |
dnf module enable php:remi-8.1 |
1 |
dnf install php php-curl php-fileinfo php-gd php-json php-mbstring php-mysqli php-session php-zlib php-simplexml php-xml php-intl php-cli php-domxml php-ldap php-openssl php-xmlrpc php-zip -y |
Установка Nginx.
Для установки Nginx добавим его репозиторий. Для этого открываем на редактирование файл /etc/yum.repos.d/nginx.repo
1 |
nano /etc/yum.repos.d/nginx.repo |
и добавляем туда следующее содержимое:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true |
При помощи следующих команд установим Nginx и добавим его автозапуск.
1 2 3 |
dnf config-manager --enable nginx-stable dnf install nginx -y systemctl enable --now nginx |
Установка MariaDB.
Для начала идем на сайт https://mariadb.org/download/?t=repo-config и выбираем там свою версию операционной системы и нужную версию MariaDB(не ниже 10.2). После этого в окне ниже появится код
Скопируйте появившийся код в /etc/yum.repos.d/MariaDB.repo, открыв его с помощью редактора:
1 |
nano /etc/yum.repos.d/MariaDB.repo |
Добавляем репозиторий, устанавливаем MariaDB и устанавливаем автозапуск:
1 2 3 |
dnf config-manager --enable mariadb dnf install mariadb-server -y systemctl enable --now mariadb |
Проходим интерактивную настройку, выполнив команду:
1 |
mysql_secure_installation |
Подключаемся к СУБД с указанием пароля, который настроили на предыдущем шаге:
1 |
mysql -u root -p |
Создаем базу данных, пользователя и назначаем ему права на эту базу:
1 2 3 4 |
CREATE DATABASE glpidb; GRANT ALL PRIVILEGES ON glpidb.* TO 'glpiuser'@'localhost' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; exit; |
Чтобы часовые пояса работали в экземпляре MariaDB/MySQL, вам нужно будет инициализировать данные часовых поясов и предоставить пользователю базы данных GLPI доступ для чтения к своей таблице.
1 |
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -p -u root mysql |
Перезапустим MariaDB:
1 |
systemctl restart mariadb.service |
Настройка php.ini
Открываем файл /etc/php.ini
1 |
nano /etc/php.ini |
и приводим указанные параметры к следующим значениям:
1 2 3 4 5 6 7 8 9 |
memory_limit = 64M ; // max memory limit max_execution_time = 600 ; // not mandatory but recommended session.auto_start = off ; session.use_trans_sid = 0 ; // not mandatory but recommended session.cookie_httponly = on file_uploads = on ; upload_max_filesize = 256M post_max_size = 256M date.timezone = "Europe/Moscow" |
На этом подготовительные мероприятия закончены.
Установка GLPI.
Идем на гитхаб и выбираем версию glpi для загрузки https://github.com/glpi-project/glpi/releases/
Копируем ссылку на скачивание и скачиваем архив:
1 2 |
cd /tmp wget https://github.com/glpi-project/glpi/releases/download/10.0.7/glpi-10.0.7.tgz |
Распаковываем архив:
1 |
tar -xzvf glpi-10.0.7.tgz |
Копируем распакованные файлы в директорию /var/www и переходим туда:
1 2 |
mv glpi /var/www/ cd /var/www/ |
Делаем Nginx владельцем файлов и папок:
1 |
chown nginx:nginx /var/www/glpi/ -R |
Создадим директории:
1 |
mkdir /etc/nginx/{sites-available,sites-enabled} |
Добавляем в основной файл конфига Nginx:
1 |
nano /etc/nginx/nginx.conf |
строку include /etc/nginx/sites-enabled/*.conf;
Теперь создадим файл с конфигом для GLPI:
1 |
nano /etc/nginx/sites-available/glpi.conf |
Добавим туда примерно следующее:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
server { listen 80; listen [::]:80; server_name glpi.localhost; root /var/www/glpi/public; location / { try_files $uri /index.php$is_args$args; } location ~ ^/index\.php$ { # the following line needs to be adapted, as it changes depending on OS distributions and PHP versions fastcgi_pass unix:/run/php-fpm/php-fpm.sock; fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } |
Вместо glpi.localhost укажите IP-адрес или днс-имя вашего сайта с GLPI.
Создадим ссылку:
1 |
ln -s /etc/nginx/sites-available/glpi.conf /etc/nginx/sites-enabled/glpi.conf |
Открываем на редактирование файл /etc/php-fpm.d/www.conf
1 |
nano /etc/php-fpm.d/www.conf |
и изменяем(раскомментируем) следующие строки:
1 2 3 4 5 6 7 |
user = nginx group = nginx listen = /run/php-fpm/php-fpm.sock listen.mode = 0660 listen.owner = nginx listen.group = nginx |
Перезапускаем php-fpm и nginx:
1 2 |
systemctl restart php-fpm systemctl restart nginx |
Настройка SELINUX.
Несколько слов о настройке selinux. Его можно либо отключить:
1 2 |
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config setenforce 0 |
либо настроить:
1 2 3 4 5 6 |
dnf -y install policycoreutils-python-utils setsebool -P httpd_can_network_connect on setsebool -P httpd_can_network_connect_db on setsebool -P httpd_can_sendmail on semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/glpi(/.*)?" restorecon -Rv /var/www/glpi |
После этого откройте в браузере адрес, который указали ранее, например http://glpi.localhost
GLPI установка, завершающий этап.
Выбираем язык.
смотрим сведения о лицензии
На следующем экране выбираем «Установить»:
Если во время установки всё сделано правильно, то на следующем экране никаких предупреждений не будет:
Далее указываем параметры подключения к БД:
Появится сообщение об успешном подключении к БД. Еще через пару-тройку шагов(скрины выкладывать не буду) увидите экран со списком учетных записей и паролями по умолчанию. Не забудьте поменять пароли от этих учеток.
Ну и наконец долгожданный экран входа в систему:
На этом установка GLPI с нуля завершена. Можно входить и приступать к настройке.