GLPI 安裝記錄 Debian
這是一套開源的資產管理系統,功能還滿多的,可以搭配 OCS Inventory 服務一起配合,可以補強 OCS Inventory 功能讓 OCS 只負責收集資料,GLPI 來管理整個設備的資產。
運行環境
本工作室環境都是在 「Proxmox VE 」 虛擬系統上架設,都是以 「 LXC 」模式為主,除非有特殊狀況會告知使用 「 VM 」 模式
- 系統環境: Debian 12
- Web 服務: Nginx 1.26.2
- PHP 服務: PHP 8.3
- 資料庫服務: MariaDB 10.11
安裝流程
安裝 Web 服務
- 請參考本站所編寫安裝流程 Nginx 模組擴充 - Debian \ Ubuntu
安裝 資料庫 服務
因 GLPI
本身也有代理程式可以收用戶端的設備資料,所以也可以獨立運行使用。
-
請參考本站所編寫安裝流程 在 Linux 系統上安裝 MariaDB
-
建置
GLPI
資料表 -
設定 GLPI 資料庫
mariadb -u root -p
CREATE DATABASE glpidb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON glpidb.* TO 'glpiuser'@'localhost' IDENTIFIED BY 'New-Password'; <----要修改 New-Password 密碼
FLUSH PRIVILEGES;
安裝 PHP 服務
- 安裝 php 必要套件
apt install -y apt-transport-https lsb-release ca-certificates wget
- 新增 php 金鑰
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
- 新增 PHP 來源庫
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/sury-php.list && apt update
- 安裝 php 及其他必要套件
sudo apt -y install re2c gcc curl php8.3 php8.3-{mysqlnd,pdo,xml,mbstring,fpm,mysql,gd,cli,opcache,curl,ldap,odbc,xmlrpc,soap,intl,zip,common,imap,bz2,apcu,xsl,tidy,pspell,memcache,imagick}
- 修改
php.ini
相關設定
# 指令方式修改
sed -i "s|^;cgi.fix_pathinfo=1.*$|cgi.fix_pathinfo=0|" /etc/php/8.3/fpm/php.ini
sed -i "s|^;cgi.fix_pathinfo=1.*$|cgi.fix_pathinfo=0|" /etc/php/8.3/cli/php.ini
sed -i "s|^;date.timezone =.*$|date.timezone = Asia/Taipei|" /etc/php/8.3/fpm/php.ini
sed -i "s|^;date.timezone =.*$|date.timezone = Asia/Taipei|" /etc/php/8.3/cli/php.ini
sed -i "s|^upload_max_filesize = 2M.*$|upload_max_filesize = 50M|" /etc/php/8.3/fpm/php.ini
sed -i "s|^upload_max_filesize = 2M.*$|upload_max_filesize = 50M|" /etc/php/8.3/cli/php.ini
sed -i "s|^post_max_size = 8M.*$|post_max_size = 200M|" /etc/php/8.3/fpm/php.ini
sed -i "s|^post_max_size = 8M.*$|post_max_size = 200M|" /etc/php/8.3/cli/php.ini
sed -i "s|^memory_limit = 128M.*$|memory_limit = 512M|" /etc/php/8.3/fpm/php.ini
sed -i "s|^memory_limit = -1.*$|memory_limit = 512M|" /etc/php/8.3/cli/php.ini
sed -i "s|^max_execution_time = 30.*$|max_execution_time = 600|" /etc/php/8.3/fpm/php.ini
sed -i "s|^max_execution_time = 30.*$|max_execution_time = 600|" /etc/php/8.3/cli/php.ini
sed -i "s|^max_input_time = 60.*$|max_input_time = 600|" /etc/php/8.3/fpm/php.ini
sed -i "s|^max_input_time = 60.*$|max_input_time = 600|" /etc/php/8.3/cli/php.ini
sed -i "s|^default_socket_timeout = 60.*$|default_socket_timeout = 600|" /etc/php/8.3/fpm/php.ini
sed -i "s|^default_socket_timeout = 60.*$|default_socket_timeout = 600|" /etc/php/8.3/cli/php.ini
sed -i "s|^session.cookie_httponly =.*$|session.cookie_httponly = 1|" /etc/php/8.3/fpm/php.ini
sed -i "s|^session.cookie_httponly =.*$|session.cookie_httponly = 1|" /etc/php/8.3/cli/php.ini
sed -i "s|^;session.cookie_secure =.*$|session.cookie_secure = 1|" /etc/php/8.3/fpm/php.ini
sed -i "s|^;session.cookie_secure =.*$|session.cookie_secure = 1|" /etc/php/8.3/cli/php.ini
- 設定
php-fpm
的設定檔vim /etc/php/8.3/fpm/pool.d/www.conf
sed -i "s|^;listen.mode = 0660.*$|listen.mode = 0660|" /etc/php/8.3/fpm/pool.d/www.conf
echo 'php_value[session.save_path] = /var/www/html/sessions' >> /etc/php/8.3/fpm/pool.d/www.conf
- 啟重
php-fpm
服務
systemctl enable --now php8.3-fpm
Nginx 設定檔
-
Nginx
全域設定
user www-data;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
- 服務設定
vim /etc/nginx/conf.d/glip.conf
server {
listen 80;
listen [::]:80;
server_name 您的網域;
rewrite ^(.*)$ https://${server_name}$1 permanent;
}
#
server {
listen 443 ssl;
http2 on;
listen [::]:443 ssl;
server_name 您的網域;
root /var/www/html/glpi/public;
#
# certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
#
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets on;
#
# intermediate configuration. tweak to your needs.
#
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers on;
#
access_log /var/log/nginx/glpi_access.log;
error_log /var/log/nginx/glpi_error.log;
#
location / {
try_files $uri /index.php$is_args$args;
}
location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README) {
deny all;
}
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/php8.3-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
設定 GLPI 服務
- 建立相關目錄
mkdir -p /var/www/html/sessions
chown -R www-data:www-data /var/www/html/sessions
-
首先到 GLPI 官方下載,我是到 GigHub 官方下載當時下載的版本是
GLPI 10.0.16
-
到 WEB 目錄下
cd /var/www/html
- 下載最新版本
GLPI
版本
wget https://github.com/glpi-project/glpi/releases/download/10.0.16/glpi-10.0.16.tgz
- 解壓
GLPI
壓縮檔
tar -zxvf glpi-10.0.16.tgz
- 刪除剛剛壓縮檔
rm -rf glpi-10.0.16.tgz
- 設定
GLPI
此目錄權限只有apache
使用
chown -R www-data:www-data /var/www/html/glpi
chmod -R 0755 /var/www/html/glpi
安裝 GLPI 服務
- 設定完之後開啟瀏灠器輸入網址
https://GLPI 連線位置/
開始安裝 GLPI 服務,系統會自動選擇中文
- 讓您查看授權條文,可以直接按繼續
- 由於我們是新安裝所以只要按「安裝」就可以了,那除非更新 GLPI 服務就只要按下「升級」
- 會檢查環境是否有沒安裝到的
- 設定連資料庫
- 你可以選擇自己經有建好的資料庫,或者自行創建一個資料庫,系統會協助增加資料庫
BUBU 目前是搭配 OCS Inventory 來使用所以會連線到 OCS 站台資料庫進行記錄。
- 初始化完成的畫面(初始資料庫需要一點時間),直接按繼續
- 是把系統資料回報給官方,如果不放心可以不用回報,預設是有勾
- 這個是贊助官方,由於此軟體是開源,為了能讓此軟體能夠有更好的維護及長久下去,加上預算足夠的話可以捐款給官方讓此軟體可以持續下去
- 安裝完的畫面,預設會建一些帳號,可以自己考慮之後看是修改或者刪除帳號
- 這是登入畫面
- 登入成功的畫面,上面的警示跟你說預設的帳號密碼的問題,還有建議移除安裝檔