GLPI on CentOS（インストール方法）

GLPIは資産管理やチケット管理、運用管理など情報システムの管理に役立つWebアプリケーション（OSS）です。以前よりGitからインストールを実施して使っていたのですが最新版の10.台がrpmパッケージとしてリリースされたのでインストール方法をあらためて記事にしてみました。

ちなみに、ラックとかも管理できます（ネットワークエンジニア的にはちょっと熱いですｗ）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/92bb7a38-5198-805b-3259-cd310cce12d0.png)


# １．環境
OS：CentOS 7.9
Kernel: 3.10.0-1160.76.1.el7.x86_64
GLPI：10.0.2
PHP：7.4

# ２．OS最新化
いつも通りですが、OSを最新化します。
```bash
yum -y update
timedatectl set-timezone Asia/Tokyo
timedatectl  # 確認
      Local time: 月 2022-08-29 17:56:45 JST
  Universal time: 月 2022-08-29 08:56:45 UTC
        RTC time: 月 2022-08-29 08:56:45
       Time zone: Asia/Tokyo (JST, +0900)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

reboot  #再起動
```

# ３．パッケージインストール
各種パッケージをインストールしましょう。
```bash
yum -y install epel-release vim wget
yum -y remove cronie-anacron
yum -y install cronie-noanacron

curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash
yum -y install MariaDB-server
```

# ４．MariaDB設定
MariaDBのサービスをスタートさせて最低限の設定を実施しておきます。
```bash
systemctl start mariadb
systemctl enable mariadb

mariadb-secure-installation  #すべてYes
```

# ５．DB設定
GLPI用のデータベースを作成しましょう。（ユーザ・パスワードは適時変えてください）
```bash
mysql -u root -p
create user 'glpi'@'localhost' identified by 'glpi';
grant usage on *.* to 'glpi'@'localhost' identified by 'glpi';
create database if not exists `glpi`;
grant all privileges on `glpi`.* to 'glpi'@'localhost';
flush privileges;
exit

mysql -u glpi -p  #ログイン確認
exit
```

# ６．PHPインストール
GLPIはPHPで書かれています。今回はPHP7.4を使います。各種パッケージをインストールします。
```bash
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum -y install yum-utils
yum-config-manager --enable remi-php74
yum-config-manager --enable remi

yum -y install httpd php php-opcache php-apcu
yum -y install php-pear-CAS php-mbstring php-gd php-mysqlnd php-intl php-ldap php-zip php-xmlrpc

systemctl enable --now httpd
```

# ７．firewalld 設定変更
ブラウザからアクセスできるようfirewalldの設定を変更しておきます。
```bash
vim /etc/firewalld/firewalld.conf
AllowZoneDrifting=yes
↓
AllowZoneDrifting=no
:wq

firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --zone=public --add-service=https --permanent
firewall-cmd --reload
iptables -L -n  #結果を確認
```

# ８．SeLinux 設定
下記設定を実施しておきます。
```bash
setsebool -P httpd_can_network_connect on
setsebool -P httpd_can_network_connect_db on
setsebool -P httpd_can_sendmail on
```
# ９．GLPIリポジトリ追加
GLPIのrpmパッケージをインストールできるようリポジトリを登録します。以前記載した記事を参考に実施してください。

https://qiita.com/nw-engineer/items/a402e5fecdb18e0e2e36


# １０．GLPI インストール
それでは、いざGLPIのインストールへ！！
```bash
yum -y install glpi
```

# １１．エラー回避のための処理
GLPIをインストールすると、cron.d配下にファイルが生成されます。このまま放置しておくと、rootユーザ宛てにメールが届きますので一旦無効に置きます。（この内容については後日別記事で取り上げます）
```bash
vim /etc/cron.d/glpi
* * * * * apache /usr/bin/php /usr/share/glpi/front/cron.php
↓
#* * * * * apache /usr/bin/php /usr/share/glpi/front/cron.php

:wq
```

# １２．Apache設定変更
Apacheに設定を追加して、ローカルセグメントからアクセスできるよう変更します。
```bash
vim /etc/httpd/conf.d/glpi.conf
 26     <IfModule mod_authz_core.c>
 27         # Apache 2.4
 28         Require local
 29         Require ip 10.2.0.0/24  # ← ローカルからアクセスできるよう追加
 30         # Require ip ##.##.##.##

:wq

systemctl restart httpd
```

# １３．ブラウザ操作
ここからはブラウザによる操作にとなります。
http://xxx.xxx.xxx.xxx/glpi/install/install.php にアクセスします。日本語を選択しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/f76f9c3a-65f3-578a-6413-878255bb8617.png)


続行をクリックしましょう。（licenseには何も表示されていませんが、気にせず）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/26458793-71a1-7fbe-a700-1bdf47e8664b.png)

インストールをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/071d9a17-3620-c8c5-5883-cac0d9b48ad9.png)

互換性検査がすべてOKになっていれば、画面下にある続行をクリックしましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/0b357ba6-da62-878e-89ad-86902506dbfd.png)

DB設定をいれて続行をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/16362491-ae9c-3036-8876-29bab3752a61.png)

glpiを選んで続行をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/2b8a2ce7-3db0-90cd-1cb2-35b56f705078.png)


テーブルなどが作成されます。続行をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/e2155fb1-c36b-4be1-9445-46d6a294f196.png)


チェックを外して続行をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/5a1048bc-1b42-f0c4-6335-7b7e003e4cb4.png)


続行をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/7b249b78-12c4-e530-7aea-9475b5fc19c8.png)


GLPIを使用をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/63990437-c335-bd9f-1d47-5ad427039ef5.png)


ログインしましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/9a0fb72c-65ee-d446-f726-a41eae8a7cf7.png)


ログイン後に、セキュリティ警告のバナーが表示されますので
指示に従って対応しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/71b8b2ad-bf61-fb7b-2baf-9f69dc5caff6.png)



# １４．サーバタイムスタンプの変更
１３番までの操作でGLPIは利用できるようになっていますが、このままだと何かしら操作した際の記録（ログ）が9時間ずれてしまうので以下の対応を実施しておきます。
```bash
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
mysql -u root mysql
grant all privileges on `mysql`.time_zone to 'glpi'@'localhost';
grant all privileges on `mysql`.time_zone_name to 'glpi'@'localhost';
flush privileges;
show grants for 'glpi'@'localhost';  #権限確認
exit

vim /etc/my.cnf.d/server.cnf
[mysqld]
default-time-zone='Asia/Tokyo'
:wq

systemctl restart mariadb

vim /etc/php.ini
date.timezone = "Asia/Tokyo"
:wq

systemctl restart httpd
```

試しに何かしらオブジェクトを登録してみましょう。下記画面のように現在時刻になっていればOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/34a36007-f980-46a8-1b6e-c81468ceaf6c.png)

GLPIは本当に色々な事ができるツールです。デフォルトの機能だけでもかなり有益なものですが、プラグインも実装可能で利用者が比較的簡単に実装できます。

運用を請け負っている方、情シスの方向けのツールだと思いました。

次回は基本機能についてご紹介します。