如何在CentOS 7上安装Zammad票务系统

如何在CentOS 7上安装Zammad票务系统

Zammad是一个用Ruby编写的开源帮助台/客户支持系统。 这是一个基于网络的票务系统,具有许多功能,包括支持通过Facebook,电报,聊天和电子邮件等多个渠道管理客户沟通。 Zammad分布在GNU AFFERO通用公共许可证(AGPL)下,可以安装在Linux,AIX,FreeBSD,OpenBSD和MacOSX等不同平台上。 它在Github上可用,并且可以免费安装在您自己的服务器上。

在本教程中,我将向您展示如何使用Nginx Web服务器和PostgreSQL来为数据库系统安装和配置Zammad票务系统。 我们将使用CentOS 7服务器,并使用SSL Letsencrypt来保护客户端 - 服务器连接。

我们将要做什么

  1. 安装Zammad票务系统
  2. 安装并配置Letsencrypt
  3. 配置Nginx Web服务器
  4. Zammad配置
  5. Zammad其他技巧

先决条件

  • CentOS 7系统
  • 至少2GB RAM
  • 根特权

第1步 - 安装Zammad票务系统

在CentOS 7上安装Zammad票务系统之前,我们需要为我们的Nginx Web服务器安装安装EPEL(Enterprise Linux的额外软件包)存储库。

通过使用以下yum命令安装epel包来添加EPEL存储库。

sudo yum -y install epel-release

EPEL存储库已添加到系统中。

接下来,使用rpm import命令导入Zammad键。

sudo rpm --import https://rpm.packager.io/key

通过使用vim编辑器在'yum.repos.d'目录中创建一个新的.repo文件来添加Zammad存储库。

vim /etc/yum.repos.d/zammad.repo

将以下信息粘贴在那里。

[zammad]
name=Repository for zammad/zammad application.
baseurl=https://rpm.packager.io/gh/zammad/zammad/centos7/stable
enabled=1

而已。 保存并退出。

现在使用以下yum命令安装Zammad。

sudo yum -y install zammad

注意:当我们安装Zammad时,它会自动安装其他必需的软件包,包括Nginx Web服务器和PostgreSQL数据库。

安装完成后,您将看到类似于下图所示的结果。

Zammad和其他软件包 - Nginx Web服务器和PostgreSQL数据库 - 已经安装。

第2步 - 安装和配置Letsencrypt SSL

在本教程中,我们要在Nginx HTTPS下设置Zammad并使用Letsencrypt提供的免费SSL。 我们将在这一步执行该操作,并使用可从存储库安装的certbot工具(Letsencrypt Agent)。

使用yum从存储库安装certbot软件包工具。

yum -y install certbot

接下来,我们需要使用certbot工具生成新的SSL证书。 确保你有自己的域来生成证书文件。 我们将使用域名“zammad.hakase-labs.com”。

转到Nginx配置目录并在vim编辑器中打开nginx.conf文件。

cd /etc/nginx/
vim nginx.conf

将以下配置粘贴到“ 服务器{} ”块下。

        location ~ /.well-known {
                allow all;
        }

保存并退出。 然后测试配置并重新启动Web服务器。

nginx -t
systemctl restart nginx

在生成SSL证书文件之前,请确保您的HTTP和HTTPS系统端口未被防火墙阻止。 您可以使用firewall-cmd命令在CentOS上打开HTTP和HTTPS端口,如下所示。

firewall-cmd --permanent --add-service=https
firewall-cmd --reload

现在使用以下certbot命令生成SSL证书文件。

certbot certonly --standalone -d zammad.hakase-labs.co

系统会询问您的电子邮件地址以更新通知 - 输入您的电子邮件地址,然后按“ Enter ”继续。 对于Letsencrypt服务条款(TOS),键入' A '表示同意。 同样,当要求与EFF Foundation分享电子邮件时,只需输入' N '即可。

certbot命令完成后,您将看到如下所示的结果。

已生成Zammad安装的新SSL证书文件。 所有证书都在' / etc / letsencryp / live / '目录中。

第3步 - 配置Nginx Web服务器

在这一步中,我们将为Zammad配置一个虚拟主机文件。 它在zammad安装过程中自动在'/etc/nginx/conf.d/'目录中创建。

转到' /etc/nginx/conf.d/ '并编辑zammad.conf文件。

cd /etc/nginx/conf.d/
vim zammad.conf

如下所示更改所有配置。

#
# this is the Nginx config for zammad
#

upstream zammad {
    server localhost:3000;
}

upstream zammad-websocket {
    server localhost:6042;
}

server {
    listen 80;
    server_name zammad.hakase-labs.co;
    return 301 https://$host$request_uri;
}

server {
    listen 443 http2 ssl;

    ssl_certificate /etc/letsencrypt/live/zammad.hakase-labs.co/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/zammad.hakase-labs.co/privkey.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
    ssl_ecdh_curve secp384r1;
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off;
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;
    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
    add_header X-Frame-Options DENY;
    add_header X-Content-Type-Options nosniff;

    # replace 'localhost' with your fqdn if you want to use zammad from remote
    server_name zammad.irsyadf.me;

    root /opt/zammad/public;

    access_log /var/log/nginx/zammad.access.log;
    error_log  /var/log/nginx/zammad.error.log;

    client_max_body_size 50M;

    location ~ ^/(assets/|robots.txt|humans.txt|favicon.ico) {
        expires max;
    }

    location /ws {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header CLIENT_IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_read_timeout 86400;
        proxy_pass http://zammad-websocket;
    }

    location / {
        proxy_set_header Host $http_host;
        proxy_set_header CLIENT_IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_read_timeout 180;
        proxy_pass http://zammad;

        gzip on;
        gzip_types text/plain text/xml text/css image/svg+xml application/javascript application/x-javascript application/json application/xml;
        gzip_proxied any;
    }
}

保存并退出。

接下来,测试Nginx配置并确保没有错误。 然后重新启动Web服务器。

nginx -t
systemctl restart nginx

zammad虚拟主机文件现在使用SSL。 使用netstat命令进行检查,并确保您的端口443具有状态' LISTEN '的HTTPS。

netstat -plntu

第4步 - Zammad配置

Zammad已安装在CentOS 7上,Nginx作为Web服务器,PostgreSQL作为数据库服务器,并且在HTTPS连接下运行。 在这一步中,我们将对Zammad票务系统进行基本配置。

打开你的网络浏览器并输入zammad地址'zammad.hakase-labs.co'。 您将被重定向到HTTPS连接。 点击“ 安装新系统 ”按钮继续。

现在填写所有的管理配置。 用户名,电子邮件地址和密码,然后点击“ 创建 ”。

对于组织名称,输入您的公司名称并单击“ 下一步 ”。

对于电子邮件通知,请点击“ 继续 ”。

我们可以从设置页面执行电子邮件通知配置。

对于频道配置,点击“ 跳过 ”。

现在您可以看到带有美观用户界面的Zammad管理仪表板。

Zammad已安装并启用了HTTPS,并且配置已完成。

第5步 - 启用Zammad服务

Zammad带有三个组件 - 一个Web应用程序服务器,Zammad工作进程和websocket服务器。 我们可以使用下面的systemcl命令来管理所有的服务。

systemctl start zammad
systemctl status zammad
systemctl restart zammad

如果您想要逐个配置服务,则可以使用如下所示的特定组件。

systemctl status zammad-web
systemctl status zammad-worker
systemctl status zammad-websocket

在CentOS 7上安装Zammad票务系统已完成。

参考

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏