如何在 Rocky Linux 9 上安装 Zammad 客户支持系统
Zammad 是一个基于 Ruby 和 PostgreSQL 的开源客户支持/票务解决方案。 它帮助组织管理跨各种电子邮件、聊天和社交媒体渠道的通信。
在本指南中,您将了解如何在 Rocky Linux 服务器上安装 Zammad 票务系统。 您将使用 PostgreSQL、Nginx 和 Elasticsearch 运行 Zammad。
先决条件
开始之前,请确保您已准备好以下物品:
- Rocky Linux 9 服务器。
- 具有管理员权限的非 root 用户。
- 域名指向服务器IP地址。
- 具有许可状态的 SELinux。
安装依赖项
在本部分中,您将安装 Zammad 的依赖项,其中包括 EPEL 存储库、PostgreSQL 数据库、Nginx Web 服务器、Redis 和 Node.js。
首先,使用以下命令将 EPEL 存储库添加到您的 Rocky Linux 系统。
sudo dnf install epel-release -y
现在使用以下命令将默认区域设置设置为 en_US.UTF-8。
sudo localectl set-locale LC_CTYPE=en_US.UTF-8
现在运行以下命令以启用版本 18 的 Node.js 存储库。
sudo dnf module enable nodejs:18 -y
接下来,运行下面的 dnf 命令来安装 Zammad 的依赖项,包括 Nginx、PostgreSQL、Redis 和 Node.js。
sudo dnf install imlib2 nginx postgresql-server postgresql-contrib libpq-devel redis nodejs
输入 y 确认并继续。
安装完成后,运行以下命令来初始化PostgreSQL服务器。
sudo postgresql-setup initdb
使用以下命令启动并启用 Nginx、PostgreSQL 和 Redis 的服务。
sudo systemctl start nginx postgresql redis
sudo systemctl enable nginx postgresql redis
最后,使用以下命令检查 Node.js 版本。 确保您已安装 Node.js 18.0+。
node --version
安装Elasticsearch
安装依赖项后,您需要安装 Elasticsearch。 在本部分中,您将为 Zammad 安装 Elasticsearch 7.x。
现在运行以下命令为 Elasticsearch 存储库添加 GPG 密钥。
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
使用以下命令为 Rocky Linux 服务器添加 Elasticsearch 存储库。
echo "[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md"| tee /etc/yum.repos.d/elasticsearch-7.x.repo
接下来,使用以下命令将 Elasticsearch 安装到您的系统。输入 y 确认安装并在出现提示时接受 GPG 密钥。
sudo dnf install elasticsearch
安装完成后,使用以下命令将 ingest-attachment 插件安装到您的 Elasticsearch 安装中。
/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment
输入 y 确认安装。
现在重新加载 systemd 管理器并使用以下命令启动 elasticsearch 服务。
sudo systemctl daemon-reload
sudo systemctl start elasticsearch
启动后,使用下面的curl命令检查Elasticsearch。 如果安装成功,您将获得有关 Elasticsearch 版本的详细信息。
curl -X GET 'http://localhost:9200'
增加 PostgreSQL 中的最大连接数
对于PostgreSQl,您需要增加postgresql.conf 文件中的默认max_connections。 这是扎马德所需要的。
因此,使用以下命令以 postgres 用户身份登录。
su - postgres
使用 nano 编辑器打开 PostgreSQL 配置 data/postgresql.conf。
nano data/postgresql.conf
将默认 max_connections 更改为 2000,如下所示:
max_connections = 2000
保存文件并退出。
现在运行下面的 systemctl 命令来重新启动 PostgreSQL 服务并应用您的更改。
sudo systemctl restart postgresql
设置Firewalld
默认情况下,Rocky Linux 上启用了firewalld。 因此,现在您需要打开 HTTP 和 HTTPS 服务并允许流向 Zammad 的流量。
使用以下命令将 HTTP 和 HTTPS 服务添加到 firewalld。
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
现在重新加载firewalld以应用HTTP和HTTPS的新规则。
sudo firewall-cmd --reload
使用以下命令检查firewalld上的规则列表。您将看到firewalld上提供HTTP和HTTPS服务。
sudo firewall-cmd --list-all
安装 Zammad 客户支持系统
现在您已经安装并配置了依赖项,您可以开始 Zammad 安装,这可以通过 DNF 包管理器完成。
使用以下命令添加 Zammad 存储库的 GPG 密钥。
sudo rpm --import https://dl.packager.io/srv/zammad/zammad/key
现在使用以下命令将 Zammad 存储库添加到您的 Rocky Linux 服务器。
sudo wget -O /etc/yum.repos.d/zammad.repo \
https://dl.packager.io/srv/zammad/zammad/develop/installer/el/9.repo
接下来,使用下面的 dnf 命令安装 zammad。 出现提示时,输入 y 确认 gpg 密钥和 Zammad 安装。
sudo dnf install zammad
安装完成后,执行以下命令查看Zammad的服务,包括zammad、zammad-web、zammad-worker、zammad-websocket。
sudo systemctl status zammad
sudo systemctl status zammad-web
sudo systemctl status zammad-worker
sudo systemctl status zammad-websocket
确保 Zammad 的每项服务都在运行。
最后,运行以下命令来设置 Zammad 和 Elasticsearch 之间的集成。
zammad run rails r "Setting.set('es_url', 'http://localhost:9200')"
zammad run rake zammad:searchindex:rebuild
执行命令后,这将为 Zammad 创建一个 elasticsearch 索引。
将 Nginx 设置为反向代理
现在您已经安装了 Zammad,您将把 Nginx 配置为反向代理,默认情况下,Zammad 提供了一个示例配置,该示例配置位于 /opt/zammad/contrib 目录中。
将 Zammad 的 Nginx 配置复制到 /etc/nginx/conf.d/zammad.conf 并使用 nano 编辑器命令打开它。
cp /opt/zammad/contrib/nginx/zammad.conf /etc/nginx/conf.d/zammad.conf
sudo nano /etc/nginx/conf.d/zammad.conf
在 server_name 选项中,将其更改为您的域。
server_name zammad.hwdomain.io;
保存并退出文件。
现在验证您的 Nginx 配置以确保语法正确。 如果成功,您应该得到一个输出“语法正确”。
sudo nginx -t
最后,运行以下命令重新启动 Nginx 服务并为 Zammad 应用新的服务器块配置。
sudo systemctl restart nginx
这样,您的 Zammad 安装就应该准备就绪并且可以访问了。
使用 HTTPS 保护 Zammad
现在 Nginx 已配置完毕,让我们通过 SSL/TLS 证书保护 Zammad 的安全。 您将安装 Certbot 并利用 Letsencrypt 的 certbot 生成 SSL 证书。
使用下面的 dnf 命令安装 Certbot 和 Nginx 插件。 输入 y 确认安装。
sudo dnf install certbot python3-certbot-nginx
安装完成后,运行下面的 certbot 命令来生成 SSL/TLS 证书并保护您的 Zammad 安装。确保使用您的信息更改电子邮件地址和域名的信息。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d zammad.hwdomain.io
完成后,您的 SSL/TLS 证书将在 /etc/letsencrypt/live/domain.com 目录中可用,并且您的 Zammad 也将自动使用 HTTPS 保护。
设置 Zammad 安装
启动您的网络浏览器并访问 https://zammad.hwomdian.io/。 如果安装成功,系统会询问您以下问题:
单击“设置新系统”以开始配置 Zammad。
输入 Zammad 的管理员用户和密码的详细信息,然后单击“创建”。
输入您的组织名称,上传您的徽标,然后单击“下一步”继续。
对于电子邮件设置,单击“跳过”。 您可以在完成安装后进行配置。
现在您将看到如下所示的 Zammad 仪表板。
结论
恭喜您已在 Rocky Linux 9 服务器上完成 Zammad 票务系统的安装。Zammad 中运行有 PostgreSQL 数据库、Nginx 作为反向代理、Elasticsearch,并且还通过 Certbot 使用 HTTPS 进行保护。
资讯来源:由a0资讯编译自THECOINREPUBLIC。版权归作者A0资讯所有,未经许可,不得转载