本页内容

  • 准备工作
  • 安装依赖项
  • 配置 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

在 Debian 12 上安装 GLPI IT 资产管理

仓库更新完成后,输入以下命令来安装 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 以确认并继续安装。

在 Debian 12 上安装 GLPI IT 资产管理

依赖项安装完成后,通过执行以下命令来验证各项依赖。

验证 apache2 服务,确保其处于运行并已启用状态。

sudo systemctl is-enabled apache2
sudo systemctl status apache2

输出中的 enabled 表明 Apache2 服务已启用。active (running) 的输出表明 Apache2 正在运行。

在 Debian 12 上安装 GLPI IT 资产管理

使用以下命令验证 mariadb 服务。

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

输出应与以下内容类似:

在 Debian 12 上安装 GLPI IT 资产管理

最后,使用以下命令验证 PHP 版本以及已启用扩展的列表。

php -v
php -m

你应该看到已安装 PHP 8.2,并且启用了 fileinfo、gd、intl、mysqli 和 zlib 等一些扩展。

在 Debian 12 上安装 GLPI IT 资产管理

配置 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;

在 Debian 12 上安装 GLPI IT 资产管理

现在运行以下查询,验证用户 glpi@localhost 的权限。

SHOW GRANTS FOR glpi@localhost;

你应该看到用户 glpi@localhost 拥有访问数据库 glpidb 的权限。

在 Debian 12 上安装 GLPI IT 资产管理

输入 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 页面:

在 Debian 12 上安装 GLPI IT 资产管理

下载 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 的输出。

在 Debian 12 上安装 GLPI IT 资产管理

现在运行以下 systemctl 命令以重启 Apache2 服务,并应用虚拟主机文件上的新更改。

sudo systemctl restart apache2

最后,打开你的 Web 浏览器并访问你的 GLPI 安装的域名,例如 http://glpi.howtoforge.local 。如果安装成功,你应该会看到如下的 GLPI 安装页面:

在 Debian 12 上安装 GLPI IT 资产管理

使用 SSL/TLS 证书加固 GLPI

至此,你已基本准备好完成 GLPI 安装。现在你将通过 Certbot 工具以及 Certbot Apache 插件,从 Letsencrypt 生成 SSL/TLS 证书来加固 GLPI。

运行以下 apt 命令以安装 Certbot 和 Certbot Apache 插件。输入 y 确认并继续安装。

sudo apt install certbot python3-certbot-apache

在 Debian 12 上安装 GLPI IT 资产管理

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 。

在 Debian 12 上安装 GLPI IT 资产管理

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

在 Debian 12 上安装 GLPI IT 资产管理

点击 Install 开始 GLPI 安装。

在 Debian 12 上安装 GLPI IT 资产管理

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

在 Debian 12 上安装 GLPI IT 资产管理

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

在 Debian 12 上安装 GLPI IT 资产管理

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

在 Debian 12 上安装 GLPI IT 资产管理

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

在 Debian 12 上安装 GLPI IT 资产管理

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

在 Debian 12 上安装 GLPI IT 资产管理

点击 Continue 进入下一部分。

在 Debian 12 上安装 GLPI IT 资产管理

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

点击 Use GLPI 完成安装。

在 Debian 12 上安装 GLPI IT 资产管理

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

在 Debian 12 上安装 GLPI IT 资产管理

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

在 Debian 12 上安装 GLPI IT 资产管理

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

在 Debian 12 上安装 GLPI IT 资产管理

最后,回到你的终端服务器并运行以下命令以删除安装脚本。

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)等等。