如何在 Debian 12 上安装 Zammad 客户支持系统
Zammad 是一种开源客户支持/票务解决方案,可帮助管理跨各种渠道(例如电子邮件、聊天和社交媒体)的通信。
在本指南中,您将了解如何在 Debian 12 服务器上使用 PostgreSQL 和 Nginx 安装 Zammad 客户支持系统。您还将把 Zammad 与 Elasticsearch 和 Redis 集成,敬请关注。
先决条件
在继续之前,请确保您已准备好以下内容:
- 具有 4GB 或更多内存的 Debian 12 服务器。
- 具有管理员权限的非 root 用户。
- 域名指向服务器IP地址。
安装依赖项
第一步,安装 Zammad 客户支持系统的软件包依赖项。这包括以下包:
- 弹性搜索
- PostgreSQL 数据库服务器
- 雷迪斯
- Nginx 网络服务器
- Node.js
- 超细纤维束
您将在 Debian 服务器上安装这些软件包。
首先,运行以下命令来安装用于管理存储库的基本包。输入 y 确认安装。
sudo apt install curl apt-transport-https gnupg
现在运行以下命令将 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
然后使用以下命令添加 GPG 密钥 Elasticsearch 存储库。
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
更新存储库后,使用以下命令安装 Zammand 的依赖项。输入 Y 确认安装。
sudo apt install libimlib2 elasticsearch postgresql postgresql-common redis-server nginx nodejs locales ufw
安装完所有内容后,验证每个服务以确保该服务正在运行并启用。
使用命令验证 PostgreSQL 服务器。
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql
下面您可以看到 PostgreSQL 正在运行并启用。
使用以下命令验证 Redis 服务器。
sudo systemctl is-enabled redis
sudo systemctl status redis
可以看到下面Redis正在运行。
现在使用以下命令验证 Nginx。
sudo systemctl is-enabled nginx
sudo systemctl status nginx
Nginx Web 服务器应该像这样运行并启用:
最后,运行以下命令来启动并启用 Elasticsearch。
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
然后使用以下命令验证它。您应该看到 Elasticsearch 正在运行并已启用。
sudo systemctl status elasticsearch
配置依赖关系
安装 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 更改为 2000m,这是 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 确认安装。完成后,您将得到以下内容。
现在使用以下命令重新启动elasticsearch。
sudo systemctl restart elasticsearch
最后,验证 Elasitcsearch 是否正在使用 curl 运行。
curl -X GET 'http://localhost:9200'
您可以在下面看到 Elasitcsearch 正在 Debian 服务器上运行。
设置默认区域设置
为了使 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
设置UFW
现在运行下面的 ufw 命令来启用配置文件 OpenSSH 和 WWW Full。
sudo ufw allow OpenSSH
sudo ufw allow "WWW Full"
然后使用以下命令启用 UFW。输入 y 确认并启动 UFW。
sudo ufw enable
启用后,您将得到以下信息:
启用 UFW 后,运行以下命令进行验证。
sudo ufw status
您可以看到状态为活动的 UFW 以及已启用的配置文件OpenSSH 和WWW Full。
安装 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
更新存储库后,使用以下命令安装 Zammad。
sudo apt install zammad
下面是Zammad的安装:
在安装过程中,将在数据库迁移的同时创建 PostgreSQL 数据库和用户。
此外,还将创建 Nginx 服务器块配置。
安装完成后,运行下面的 zammad 命令来设置与 Elasticsearch 的集成并在 Elasticsearch 中重建搜索索引。
zammad run rails r "Setting.set('es_url', 'http://localhost:9200')"
zammad run rake zammad:searchindex:rebuild
然后,运行以下命令重新启动 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 服务器上运行并启用。
设置 Nginx Web 服务器
默认情况下,zammad 生成位于 /etc/nginx/sites-available/zammad.conf 的 Nginx 服务器块配置。要在生产中设置 Zammad,您必须确保更改域配置。此外,您必须在生产环境中使用 HTTPS 进行保护。
现在使用以下 nano 编辑器命令打开文件 /etc/nginx/sites-available/zammad.conf。
sudo nano /etc/nginx/sites-available/zammad.conf
更改 server_name 选项中的默认域名,如下所示:
server_name help.hwdomain.io;
保存并退出文件。
接下来,运行以下命令验证Nginx语法并重新启动Nginx服务以生效。
sudo nginx -t
sudo systemctl restart nginx
下面可以看到Nginx语法测试成功。
确保扎马德安全
如果您在生产环境中部署,请确保通过 Letsencrypt 启用 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 -d help.hwdomain.io
生成过程将运行。完成后,您的 SSL 证书将在 /etc/letsencrypt/live/domain.com 目录中可用。
安装 Zammad
打开 Web 浏览器并访问 zammad 安装 URL (http://help.hwdomain.io)。单击设置新系统开始安装。
现在输入您的管理员用户、电子邮件和密码的详细信息。然后点击创建进行确认。
输入您的组织名称,然后单击下一步。
对于电子邮件通知,请暂时点击跳过。您可以稍后配置。
点击跳过进行连接通道配置。配置完成后也可以稍后完成此操作。
该过程完成后,您可以看到 Zammad 管理仪表板,如下所示:
结论
恭喜!您现在已经在 Debian 12 服务器上成功安装了 Zammad 客户支持系统。您已经安装了 zammad 和 PostgreSQL 数据库后端、Nginx Web 服务器、用于主搜索引擎的 Elasticsearch 以及用于缓存和会话管理的 Redis。此外,您还了解了如何通过 Certbot 和 Letsencrypt 为 Zammad 启用 HTTPS。