本页内容

  • 准备工作
  • 安装依赖项
  • 配置依赖项:配置 PostgreSQL、配置 Elasticsearch、配置默认区域设置、配置 UFW
  • 安装 Zammad 客户支持系统
  • 配置 Nginx Web 服务器
  • 保护 Zammad 安全
  • 安装 Zammad
  • 总结
  • 配置 PostgreSQL
  • 配置 Elasticsearch
  • 配置默认区域设置
  • 配置 UFW

Zammad 是一款开源的客户支持/工单系统,可帮助管理通过电子邮件、聊天和社交媒体等多种渠道的沟通。

在本指南中,您将学习如何在 Debian 12 服务器上安装基于 PostgreSQL 和 Nginx 的 Zammad 客户支持系统。您还将把 Zammad 与 Elasticsearch 和 Redis 集成,敬请关注。

准备工作

在继续之前,请确保您已做好以下准备:

  • 一台内存为 4GB 或更大的 Debian 12 服务器。
  • 一个具有管理员权限的非 root 用户。
  • 一个已指向服务器 IP 地址的域名。

安装依赖项

第一步,您需要为 Zammad 客户支持系统安装软件包依赖项。包括以下软件包:

  • Elasticsearch
  • PostgreSQL 数据库服务器
  • Redis
  • Nginx Web 服务器
  • Node.js
  • UFW

您将在 Debian 服务器上安装这些软件包。

首先,运行以下命令安装用于管理软件源的基础软件包。输入 y 确认安装。

sudo apt install curl apt-transport-https gnupg

在 Debian 12 上安装 Zammad 客户支持系统

现在运行以下命令,将 Elasticsearch 7.x 软件源添加到您的 Debian 12 服务器。

echo "deb [signed-by=/etc/apt/trusted.gpg.d/elasticsearch.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main"| \
tee -a /etc/apt/sources.list.d/elastic-7.x.list > /dev/null

然后使用以下命令添加 Elasticsearch 软件源的 GPG 密钥。

curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | \
gpg --dearmor | tee /etc/apt/trusted.gpg.d/elasticsearch.gpg> /dev/null

接下来,使用以下命令更新您的 Debian 软件源。

sudo apt update

在 Debian 12 上安装 Zammad 客户支持系统

软件源更新完成后,使用以下命令安装 Zammad 的依赖项。输入 Y 确认安装。

sudo apt install libimlib2 elasticsearch postgresql postgresql-common redis-server nginx nodejs locales ufw

在 Debian 12 上安装 Zammad 客户支持系统

所有组件安装完成后,请逐个验证各项服务,确保其处于运行并已启用状态。

使用以下命令验证 PostgreSQL 服务器。

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

如下图所示,PostgreSQL 正在运行且已启用。

在 Debian 12 上安装 Zammad 客户支持系统

使用以下命令验证 Redis 服务器。

sudo systemctl is-enabled redis
sudo systemctl status redis

如下图所示,Redis 正在运行。

在 Debian 12 上安装 Zammad 客户支持系统

现在使用以下命令验证 Nginx。

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Nginx Web 服务器应如下图所示处于运行且已启用状态:

在 Debian 12 上安装 Zammad 客户支持系统

最后,运行以下命令启动并启用 Elasticsearch。

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

然后使用以下命令进行验证。您应该会看到 Elasticsearch 正在运行且已启用。

sudo systemctl status elasticsearch

在 Debian 12 上安装 Zammad 客户支持系统

配置依赖项

安装完 Zammad 的软件包依赖项后,下一步是配置 Zammad 的各项依赖。您将配置以下内容:

  • PostgreSQL:将默认的 max_connections 增大到 2000。
  • Elasticsearch:安装 Zammad 所需的 ingest-attachment 插件。
  • 将默认区域设置配置为 en_US.UTF-8
  • UFW:启动并启用,开放 SSH、HTTP 和 HTTPS 端口。

配置 PostgreSQL

使用以下 nano 编辑器命令打开 PostgreSQL 的默认配置文件 /etc/postgresql/15/main/postgresql.conf。

sudo nano /etc/postgresql/15/main/postgresql.conf

将 PostgreSQL 中默认的 max_connections 修改为 2000,这是 Zammad 的要求。

max_connections = 2000

保存文件并退出编辑器。

现在运行以下 systemctl 命令以重启 PostgreSQL 并应用更改,

sudo systemctl restart postgresql

配置 Elasticsearch

配置完 PostgreSQL 后,我们来设置 Elasticsearch。

使用以下 elasticsearch-plugin 命令为 Zammad 安装 ingest-attachment 插件。

/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment

输入 y 确认安装。完成后,您将看到以下内容。

在 Debian 12 上安装 Zammad 客户支持系统

现在使用以下命令重启 Elasticsearch。

sudo systemctl restart elasticsearch

最后,使用 curl 验证 Elasticsearch 是否正在运行。

curl -X GET 'http://localhost:9200'

如下图所示,Elasticsearch 正在 Debian 服务器上运行。

在 Debian 12 上安装 Zammad 客户支持系统

配置默认区域设置

为了让 Zammad 正常运行,您需要将默认区域设置配置为 en_US.UTF-8。

运行以下命令生成 en_US.UTF-8 区域设置。

locale-gen en_US.UTF-8

然后通过向 /etc/default/locale 文件添加新配置,将默认区域设置设为 en_US.UTF-8。

echo "LANG=en_US.UTF-8" > /etc/default/locale

在 Debian 12 上安装 Zammad 客户支持系统

配置 UFW

现在运行以下 ufw 命令以启用 OpenSSH 和 WWW Full 配置文件。

sudo ufw allow OpenSSH
sudo ufw allow "WWW Full"

然后使用以下命令启用 UFW。输入 y 确认并启动 UFW。

sudo ufw enable

启用后,您将看到以下内容:

在 Debian 12 上安装 Zammad 客户支持系统

UFW 启用后,运行以下命令进行验证。

sudo ufw status

您可以看到 UFW 状态为 Active,且已启用 OpenSSH 和 WWW Full 配置文件。

在 Debian 12 上安装 Zammad 客户支持系统

安装 Zammad 客户支持系统

至此,您已完成 Zammad 依赖项的安装与配置。现在开始安装 Zammad,安装方式有多种。最简单的方法是使用官方 Zammad 软件源中的软件包。

运行以下命令添加 Zammad 软件源的 GPG 密钥。

curl -fsSL https://dl.packager.io/srv/zammad/zammad/key | \
gpg --dearmor | tee /etc/apt/trusted.gpg.d/pkgr-zammad.gpg> /dev/null

现在使用以下命令添加适用于 Debian 12 的 Zammad 软件源。

echo "deb [signed-by=/etc/apt/trusted.gpg.d/pkgr-zammad.gpg] https://dl.packager.io/srv/deb/zammad/zammad/stable/debian 12 main"| \
tee /etc/apt/sources.list.d/zammad.list > /dev/null

使用以下命令更新并刷新您的 Debian 软件源。

sudo apt update

在 Debian 12 上安装 Zammad 客户支持系统

软件源更新完成后,使用以下命令安装 Zammad。

sudo apt install zammad

以下是 Zammad 的安装过程:

在 Debian 12 上安装 Zammad 客户支持系统

在安装过程中,会创建 PostgreSQL 数据库和用户,并执行数据库迁移。

在 Debian 12 上安装 Zammad 客户支持系统

同时,会创建 Nginx 的 server block(虚拟主机)配置。

在 Debian 12 上安装 Zammad 客户支持系统

安装完成后,运行以下 zammad 命令以设置与 Elasticsearch 的集成,并重建 Elasticsearch 中的搜索索引。

zammad run rails r "Setting.set('es_url', 'http://localhost:9200')"
zammad run rake zammad:searchindex:rebuild

在 Debian 12 上安装 Zammad 客户支持系统

然后,运行以下命令重启 Zammad 服务。Zammad 包含多个服务,包括 zammad、zammad-web、zammad-worker 和 zammad-websocket。

sudo systemctl restart zammad
sudo systemctl restart zammad-web
sudo systemctl restart zammad-worker
sudo systemctl restart zammad-websocket

最后,运行以下命令验证 Zammad 服务状态。

sudo systemctl is-enabled zammad
sudo systemctl status zammad

如下图所示,Zammad 服务正在 Debian 服务器上运行且已启用。

在 Debian 12 上安装 Zammad 客户支持系统

配置 Nginx Web 服务器

默认情况下,Zammad 会生成位于 /etc/nginx/sites-available/zammad.conf 的 Nginx server block 配置。要在生产环境中部署 Zammad,您必须修改域名配置。同时,生产环境还必须启用 HTTPS 进行安全加固。

现在使用以下 nano 编辑器命令打开文件 /etc/nginx/sites-available/zammad.conf。

sudo nano /etc/nginx/sites-available/zammad.conf

按如下方式修改 server_name 选项中的默认域名:

server_name help.howtoforge.local;

保存并退出文件。

接下来,运行以下命令检查 Nginx 配置语法,并重启 Nginx 服务使之生效。

sudo nginx -t
sudo systemctl restart nginx

如下图所示,Nginx 语法检查通过。

在 Debian 12 上安装 Zammad 客户支持系统

保护 Zammad 安全

如果您在生产环境部署,请确保通过 Let's Encrypt 启用 HTTPS。

使用以下命令安装 certbot 和 certbot nginx 插件。输入 y 确认安装。

sudo apt install certbot python3-certbot-nginx

安装完成后,使用以下 certbot 命令为您的 Zammad 域名生成 SSL/TLS 证书。请务必修改命令中的域名和电子邮件地址信息。

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email 
[email protected]
 -d help.howtoforge.local

生成过程将开始运行。完成后,您的 SSL 证书将位于 /etc/letsencrypt/live/domain.com 目录中。

安装 Zammad

打开您的 Web 浏览器并访问 Zammad 安装地址(http://help.howtoforge.local)。点击“Set up a new system(搭建新系统)”以开始安装。

在 Debian 12 上安装 Zammad 客户支持系统

现在输入管理员用户、电子邮件和密码的详细信息。然后点击 Create(创建)确认。

在 Debian 12 上安装 Zammad 客户支持系统

输入您的组织名称,然后点击 Next(下一步)。

在 Debian 12 上安装 Zammad 客户支持系统

对于邮件通知,点击 Skip for now(暂时跳过)。您可以稍后再配置。

在 Debian 12 上安装 Zammad 客户支持系统

点击 Skip(跳过)以跳过连接渠道配置。配置完成后也可以稍后进行此操作。

在 Debian 12 上安装 Zammad 客户支持系统

流程完成后,您将看到如下所示的 Zammad 管理后台:

在 Debian 12 上安装 Zammad 客户支持系统

总结

恭喜!您已成功在 Debian 12 服务器上安装了 Zammad 客户支持系统。您安装了基于 PostgreSQL 数据库后端、Nginx Web 服务器、以 Elasticsearch 作为主搜索引擎、以 Redis 进行缓存和会话管理的 Zammad。此外,您还学习了如何通过 Certbot 和 Let's Encrypt 为 Zammad 启用 HTTPS。