本教程适用于以下操作系统版本

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 16.04 (Xenial Xerus)

本页内容

  • 环境要求
  • 更新系统
  • 安装 Java JDK
  • 安装 ElasticSearch
  • 安装 Apache 及其他依赖项
  • 安装 Zammad 工单系统
  • 为 Zammad 配置 Apache
  • 访问 Zammad 工单系统
  • 总结

Zammad 是一款免费、开源、基于 Web 的客服/工单解决方案,用于管理客户沟通。你可以通过邮件、聊天、电话、Twitter 或 Facebook 等多种渠道将其接入。它使用 JavaScript 和 Ruby 编程语言编写。它支持 REST API,可帮助你轻松关联其他程序,并实时获取所有渠道和操作的实时信息。Zammad 提供了许多实用的功能,包括 LDAP 集成、时间记录、Slack 集成、SSO、多语言支持等。

在本文中,我们将向你介绍如何在 Ubuntu 22.04 服务器上安装 Zammad 工单系统。

环境要求

  • 一台运行 Ubuntu 22.04 的服务器。
  • 你的服务器已配置 root 密码。

更新系统

首先,你需要将所有系统软件包更新并升级到最新版本。你可以运行以下命令完成所有更新。

apt update -y 
apt upgrade -y

待所有系统软件包都更新到最新后,你可以继续进行下一步。

安装 Java JDK

首先,你需要在服务器上安装 Java OpenJDK。你可以使用以下命令进行安装。

apt install openjdk-17-jdk -y

Java 安装完成后,你可以使用以下命令验证 Java 版本。

java -version

你应当能在以下输出中看到 Java 版本信息。

openjdk version "17.0.5" 2022-10-18
OpenJDK Runtime Environment (build 17.0.5+8-Ubuntu-2ubuntu122.04)
OpenJDK 64-Bit Server VM (build 17.0.5+8-Ubuntu-2ubuntu122.04, mixed mode, sharing)

Java 安装完成后,你可以继续安装 ElasticSearch。

安装 ElasticSearch

Zammad 使用 ElasticSearch 来提供搜索功能。因此你需要在服务器上安装 ElasticSearch。默认情况下,Ubuntu 默认软件源中不包含 ElasticSearch 软件包。因此你需要将 ElasticSearch 软件源添加到你的服务器。

首先,使用以下命令安装所需的依赖项。

apt install gnupg2 curl -y

接下来,使用以下命令将 ElasticSearch 的 GPG 密钥和软件源添加到 APT。

curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg --dearmor -o /usr/share/keyrings/elastic.gpg
echo "deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list

接下来,使用以下命令更新软件源缓存。

apt update -y

最后,使用以下命令安装 ElasticSearch 软件包。

apt install elasticsearch -y

ElasticSearch 安装完成后,使用以下命令启动并启用 ElasticSearch 服务。

systemctl enable elasticsearch.service
systemctl start elasticsearch.service

现在你可以使用以下命令验证 ElasticSearch。

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

如果一切正常,你将得到如下输出。

{
  "name" : "ubuntu2204",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "V4bBWciDSSWmI-QcwvJdGA",
  "version" : {
    "number" : "7.17.8",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "120eabe1c8a0cb2ae87cffc109a5b65d213e9df1",
    "build_date" : "2022-12-02T17:33:09.727072865Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

你还需要安装 ingest-attachment 插件。你可以使用以下命令进行安装。

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

你将得到如下输出。

-> Installing ingest-attachment
-> Downloading ingest-attachment from elastic
[=================================================] 100%   
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.lang.RuntimePermission accessClassInPackage.sun.java2d.cmm.kcms
* java.lang.RuntimePermission accessDeclaredMembers
* java.lang.RuntimePermission getClassLoader
* java.lang.reflect.ReflectPermission suppressAccessChecks
* java.security.SecurityPermission createAccessControlContext
See https://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.

Continue with installation? [y/N]y
-> Installed ingest-attachment
-> Please restart Elasticsearch

接下来,重启 ElasticSearch 服务以使更改生效。

systemctl restart elasticsearch

完成后,你可以继续安装 Apache 及其他依赖项。

安装 Apache 及其他依赖项

首先,使用以下命令安装 Apache Web 服务器软件包。

apt install apache2 -y

接下来,你还需要在服务器上安装 libssl。首先,使用以下命令添加 Focal 安全软件源。

echo "deb http://security.ubuntu.com/ubuntu focal-security main" | tee /etc/apt/sources.list.d/focal-security.list

接下来,使用以下命令更新软件源并安装 libssl 软件包。

apt update -y
apt install libssl1.1

完成后,你可以进入下一步安装 Zammad。

安装 Zammad 工单系统

默认情况下,Ubuntu 软件源中不包含 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

接下来,使用以下命令将 Zammad 软件源添加到 APT。

echo "deb [signed-by=/etc/apt/trusted.gpg.d/pkgr-zammad.gpg] https://dl.packager.io/srv/deb/zammad/zammad/stable/ubuntu 22.04 main"| tee /etc/apt/sources.list.d/zammad.list

接下来,使用以下命令更新软件源缓存。

apt update -y

现在,使用以下命令安装 Zammad 软件包。

apt install zammad -y

Zammad 安装完成后,你可以继续进行下一步。

为 Zammad 配置 Apache

Zammad 会在 Apache 配置目录中自动创建一个 Apache 配置文件。不过,你需要编辑 Zammad 配置文件,并根据你的实际需求进行修改。

nano /etc/apache2/sites-available/zammad.conf

修改以下行。

#ServerTokens Prod
    ServerName your-server-ip
    #RequestHeader unset X-Forwarded-User

保存并关闭文件,然后禁用默认的 Apache 配置文件。

a2dissite 000-default.conf

接下来,重启 Apache 服务以使更改生效。

systemctl restart apache2

现在你可以使用以下命令查看 Apache 的状态。

systemctl status apache2

你应当能得到如下输出。

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-12-30 02:49:21 UTC; 8s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 13887 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 13891 (apache2)
      Tasks: 55 (limit: 4579)
     Memory: 5.1M
        CPU: 53ms
     CGroup: /system.slice/apache2.service
             ??13891 /usr/sbin/apache2 -k start
             ??13892 /usr/sbin/apache2 -k start
             ??13893 /usr/sbin/apache2 -k start

Dec 30 02:49:21 ubuntu2204 systemd[1]: Starting The Apache HTTP Server...

完成后,你可以继续访问 Zammad Web 界面。

访问 Zammad 工单系统

至此,Zammad 已经在你的服务器上安装并配置完成。现在你可以使用 URL http://your-server-ip 访问它。你应当能看到如下页面。

在 Ubuntu 22.04 上安装 Zammad 工单系统

点击 Set up a new system(搭建新系统)。你应当能看到管理员账户设置页面。

在 Ubuntu 22.04 上安装 Zammad 工单系统

填写你的姓名、邮箱、密码,然后点击 Create(创建)按钮。你应当能看到如下页面。

在 Ubuntu 22.04 上安装 Zammad 工单系统

填写你的公司名称和站点 URL,然后点击 Next(下一步)按钮。你应当能看到邮件通知配置页面。

在 Ubuntu 22.04 上安装 Zammad 工单系统

选择你的邮件服务商,然后点击 Continue(继续)按钮。你应当能看到沟通渠道配置页面。

在 Ubuntu 22.04 上安装 Zammad 工单系统

点击 Skip(跳过)按钮。你应当能在下一个页面看到 Zammad 仪表盘。

在 Ubuntu 22.04 上安装 Zammad 工单系统

总结

恭喜!你已成功在 Ubuntu 22.04 服务器上安装并配置了 Zammad 工单系统。现在你可以在组织中部署 Zammad,并将其连接到 Facebook、电话等第三方渠道。如有任何疑问,欢迎随时向我提问。