Skip to main content

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 服務


安裝 資料庫 服務

  因 GLPI 本身也有代理程式可以收用戶端的設備資料,所以也可以獨立運行使用。

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
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 服務,系統會自動選擇中文

newglpi-01.png

  • 讓您查看授權條文,可以直接按繼續

newglpi-02.png

  • 由於我們是新安裝所以只要按「安裝」就可以了,那除非更新 GLPI 服務就只要按下「升級」

newglpi-03.png

  • 會檢查環境是否有沒安裝到的

  • 設定連資料庫

newglpi-05.png

  • 你可以選擇自己經有建好的資料庫,或者自行創建一個資料庫,系統會協助增加資料庫

BUBU 目前是搭配 OCS Inventory 來使用所以會連線到 OCS 站台資料庫進行記錄。

  • 初始化完成的畫面(初始資料庫需要一點時間),直接按繼續

newglpi-07.png

  • 是把系統資料回報給官方,如果不放心可以不用回報,預設是有勾

newglpi-08.png

  • 這個是贊助官方,由於此軟體是開源,為了能讓此軟體能夠有更好的維護及長久下去,加上預算足夠的話可以捐款給官方讓此軟體可以持續下去

newglpi-09.png

  • 安裝完的畫面,預設會建一些帳號,可以自己考慮之後看是修改或者刪除帳號

newglpi-10.png

  • 這是登入畫面

newglpi-11.png

  • 登入成功的畫面,上面的警示跟你說預設的帳號密碼的問題,還有建議移除安裝檔

newglpi-12.png




參考相關網頁