本页内容
- 准备工作
- 安装依赖项
- 配置 MariaDB 服务器
- 配置 PHP
- 下载 GLPI 源代码
- 配置 Apache2 虚拟主机
- 使用 SSL/TLS 证书加固 GLPI
- 通过 Web 安装向导安装 GLPI
- 结论
GLPI 是一个用 PHP 编写的开源 IT 资产与帮助台(Helpdesk)管理解决方案。它是面向组织的完整 IT 管理软件。GLPI 帮助你管理事件/请求、创建表单并定义 SLA。它还能帮助你管理硬件、软件和数据中心解决方案,从而让你关联资产清单并掌控 IT 与业务基础设施。
不仅如此,GLPI 还可作为财务管理工具,用于跟踪支出、合同和供应商,创建新的清单对象,管理用户数据库并生成报表。此外,GLPI 还包含项目管理功能,可用于任务分配、添加协作者、设置时间线和提醒,并提供看板(Kanban)以便更轻松地管理任务。
在本指南中,我将向你展示如何在 Debian 12 机器上安装 GLPI IT 管理软件。你将与 LAMP Stack(Apache2、MariaDB 和 PHP)一起安装 GLPI。此外,你还将通过 Letsencrypt 提供的 SSL/TLS 证书来加固 GLPI。
准备工作
在开始之前,请确保你已具备:
- 一台 Debian 12 服务器。
- 一个具有 sudo 管理员权限的非 root 用户。
- 一个指向服务器 IP 地址的域名。
安装依赖项
GLPI 是一个用 PHP 编写的开源 IT 管理软件,使用 MySQL/MariaDB 作为数据库。它可以与 Apache2 或 Nginx Web 服务器一起运行。在本指南中,你将使用 LAMP Stack(Apache2、MariaDB 和 PHP)安装 GLPI,完成以下步骤以安装 LAMP Stack 以及 GLPI 安装所需的一些额外依赖项。
首先,通过执行以下 apt update 命令来更新并刷新你的 Debian 软件包索引。
sudo apt update

仓库更新完成后,输入以下命令来安装 GLPI 安装所需的软件包依赖项,包括 LAMP Stack(Apache2、MariaDB 和 PHP)软件包以及一些额外的 PHP 扩展。
sudo apt install apache2 mariadb-server php php-common php-mysql libapache2-mod-php php-gd php-curl php-json php-xmlrpc php-intl php-bcmath php-zip php-apcu php-mbstring php-fileinfo php-xml php-soap php-zip
输入 y 以确认并继续安装。

依赖项安装完成后,通过执行以下命令来验证各项依赖。
验证 apache2 服务,确保其处于运行并已启用状态。
sudo systemctl is-enabled apache2
sudo systemctl status apache2
输出中的 enabled 表明 Apache2 服务已启用。active (running) 的输出表明 Apache2 正在运行。

使用以下命令验证 mariadb 服务。
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
输出应与以下内容类似:

最后,使用以下命令验证 PHP 版本以及已启用扩展的列表。
php -v
php -m
你应该看到已安装 PHP 8.2,并且启用了 fileinfo、gd、intl、mysqli 和 zlib 等一些扩展。

配置 MariaDB 服务器
安装完 LAMP Stack 软件包后,接下来你将通过 mariadb-secure-installation 工具加固 MariaDB 服务器来进行配置。随后,你还将创建一个供 GLPI 使用的新 MariaDB 数据库和用户。
在终端上执行 mariadb-secure-installation 工具,以加固你的 MariaDB 服务器安装。
sudo mariadb-secure-installation
输入 Y 以将配置应用到你的 MariaDB 服务器,或输入 n 表示否并拒绝更改。以下是你将被询问的一些相关 MariaDB 配置:
- 将本地身份验证切换为 unix_socket?输入 n 表示否。
- 设置 MariaDB root 密码?输入 y,然后输入新的 MariaDB root 密码并重复确认。
- 删除默认的匿名用户?输入 y 确认。
- 禁用 root 用户的远程登录?输入 y 确认。
- 删除默认的 test 数据库?输入 y 确认。
- 重新加载权限表并应用更改?输入 y 确认。
加固 MariaDB 服务器后,你将创建一个供 GLPI 使用的新数据库和用户。你可以通过 mariadb 客户端来创建新数据库和用户。
使用以下命令登录 MariaDB 服务器,请务必在提示时输入你的 MariaDB root 密码。
sudo mariadb -u root -p
接下来,执行以下查询语句,创建新的 MariaDB 数据库 glpidb,用户为 glpi,密码为 p4ssw0rd。请务必根据你的实际情况修改以下内容。
CREATE DATABASE glpidb;
CREATE USER glpi@localhost IDENTIFIED BY 'p4ssw0rd';
GRANT ALL PRIVILEGES ON glpidb.* TO glpi@localhost;
FLUSH PRIVILEGES;

现在运行以下查询,验证用户 glpi@localhost 的权限。
SHOW GRANTS FOR glpi@localhost;
你应该看到用户 glpi@localhost 拥有访问数据库 glpidb 的权限。

输入 quit 退出 MariaDB 服务器。
配置 PHP
在接下来的部分中,你将通过编辑 php.ini 文件来配置你的 PHP 安装。然后,你将通过创建一个新 PHPINFO 文件来验证 Apache2 和 PHP 的安装情况,该文件会显示你 PHP 安装的详细信息。
使用以下 nano 编辑器命令打开默认的 php.ini 配置文件。
sudo nano /etc/php/8.2/apache2/php.ini
将以下部分 PHP 配置按如下方式修改。请务必根据你的时区调整 date.timezone,并根据你的内存配置调整 memory_limit。
memory_limit = 512M date.timezone = Europe/Stockholm upload_max_filesize = 16M session.cookie_httponly = on
完成后保存并关闭文件。
接下来,执行以下 systemctl 命令以重启 Apache2 服务并应用你所做的更改。
sudo systemctl restart apache2
然后通过执行以下命令创建新的 PHPINFO 文件 /var/www/html/info.php。
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
启动你的 Web 浏览器,访问你的服务器 IP 地址加 /info.php 路径,例如 http://192.168.10.15/info.php 。如果配置成功,你应该会看到如下的 PHPINFO 页面:

下载 GLPI 源代码
配置完 PHP 后,你将通过 GitHub 下载 GLPI 源代码,并设置 GLPI Web 根目录的正确权限和所有权。
切换到 /var/www 目录,通过以下 wget 命令下载 GLPI 源代码。在本示例中,你将下载 GLPI v10.x,它是 GLPI 10.x 的最新稳定版本。请务必查看 GLPI 下载页面以获取其最新版本。
cd /var/www/
wget https://github.com/glpi-project/glpi/releases/download/10.0.9/glpi-10.0.9.tgz
GLPI 源代码下载完成后,使用以下 tar 命令将其解压,你应该会看到一个新的目录 /var/www/glpi 。
tar -xf glpi-10.0.9.tgz
现在运行以下命令,将 /var/www/glpi 目录的所有权更改为用户 www-data,以便 Apache2 Web 服务器能够访问它。
sudo chown -R www-data:www-data /var/www/glpi
然后,执行以下命令,使目录下的文件和 config 目录可写。这将允许 Apache2 Web 服务器写入这些目录以存储 GLPI 数据。
sudo chmod u+rw /var/www/glpi/{files,config}
配置 Apache2 虚拟主机
现在已经下载了 GLPI 源代码,下一步是创建一个用于运行 GLPI 的新 Apache2 虚拟主机配置。在继续之前,请确保你有一个指向 Debian 服务器 IP 地址的域名。
在创建虚拟主机配置之前,执行以下命令以启用 Apache2 中的 rewrite 模块。
sudo a2enmod rewrite
使用以下 nano 编辑器命令创建新的虚拟主机配置 /etc/apache2/sites-available/glpi.conf。
sudo nano /etc/apache2/sites-available/glpi.conf
插入以下配置,并务必将 ServerName 参数中的域名替换为你自己的域名。
<VirtualHost *:80>
ServerName glpi.howtoforge.local
DocumentRoot /var/www/glpi/public
# If you want to place GLPI in a subfolder of your site (e.g. your virtual host is serving multiple applications),
# you can use an Alias directive:
# Alias "/glpi" "/var/www/glpi/public"
<Directory /var/www/glpi/public>
Require all granted
RewriteEngine On
# Redirect all requests to the GLPI router, unless file exists.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</Directory>
</VirtualHost>
完成后保存并关闭文件。
接下来,执行以下命令以启用虚拟主机文件 glpi.conf。然后,验证你的 Apache2 语法,确保没有语法错误。
sudo a2ensite glpi.conf
sudo apachectl configtest
如果你的 Apache2 语法正确,你应该会看到 Syntax OK 的输出。

现在运行以下 systemctl 命令以重启 Apache2 服务,并应用虚拟主机文件上的新更改。
sudo systemctl restart apache2
最后,打开你的 Web 浏览器并访问你的 GLPI 安装的域名,例如 http://glpi.howtoforge.local 。如果安装成功,你应该会看到如下的 GLPI 安装页面:

使用 SSL/TLS 证书加固 GLPI
至此,你已基本准备好完成 GLPI 安装。现在你将通过 Certbot 工具以及 Certbot Apache 插件,从 Letsencrypt 生成 SSL/TLS 证书来加固 GLPI。
运行以下 apt 命令以安装 Certbot 和 Certbot Apache 插件。输入 y 确认并继续安装。
sudo apt install certbot python3-certbot-apache

Certbot 安装完成后,运行以下 certbot 命令,为你的 GLPI 安装生成新的 SSL/TLS 证书。请务必修改以下命令中的域名和电子邮件地址。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email
[email protected]
-d glpi.example.io
现在,你的 SSL/TLS 证书将位于 /etc/letsencrypt/live/domain.com 目录。此外,你的虚拟主机配置 glpi.conf 现已配置为 HTTPS,这是通过 Certbot Apache2 插件完成的。
通过 Web 安装向导安装 GLPI
启动你的 Web 浏览器并访问你的 GLPI 安装的域名,例如 http://glpi.howtoforge.local/ 。现在你将被重定向到安全的 HTTPS 连接,并进入 GLPI 安装页面。
首先,选择你偏好的语言,然后点击 OK 。

接受 GLPI 许可证,然后点击 Continue 继续。

点击 Install 开始 GLPI 安装。

确认你的服务器环境满足 GLPI 的检查要求,然后点击 Continue 。

输入你为 GLPI 安装所创建的 MariaDB 用户的详细信息,然后点击 Continue 。

选择数据库 glpidb,再次点击 Continue。

GLPI 数据库将被初始化,点击 Continue 。

在 Collect data 部分根据你的偏好进行配置,然后点击 Continue 。

点击 Continue 进入下一部分。

最后,你应该会看到已创建一些默认的 GLPI 用户,例如:glpi/glpi 为管理员账户,tech/tech 为 technicians 账户,normal/normal 为普通账户,post-only/postonly 为 postonly 账户。
点击 Use GLPI 完成安装。

现在你应该会看到 GLPI 登录页面。输入默认用户 glpi 和密码 glpi,然后点击 Sign In 。

登录后,你将看到如下的 GLPI 管理仪表盘:

你还将被要求更改 glpi 用户的默认密码。输入新的 glpi 管理员密码,然后点击 Save 。

最后,回到你的终端服务器并运行以下命令以删除安装脚本。
sudo rm /var/www/glpi/public/install/install.php
结论
总结一下,你已在 Debian 12 服务器上使用 LAMP Stack(Apache2、MariaDB 和 PHP)安装了 GLPI 库存管理。你还通过 Certbot 以及 Certbot Apache 插件,使用从 Letsencrypt 生成的 SSL/TLS 证书加固了 GLPI。现在,你可以探索 GLPI 的丰富功能,例如库存管理、数据中心基础设施管理(DCIM)等等。