如何在Ubuntu 16.04上安装Zammad票务系统

如何在Ubuntu 16.04上安装Zammad票务系统

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

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

我们将要做什么

  1. 在Ubuntu 16.04上配置语言环境
  2. 安装Zammad票务系统
  3. 安装和配置SSL Letsencrypt
  4. 配置Nginx HTTPS
  5. Zammad配置
  6. 其他提示

先决条件

  • Ubuntu 16.04
  • 内存:2GB或更多
  • 根特权

第1步 - 配置区域设置

我们需要将我们的语言环境系统设置为'UTF-8'来安装PostgreSQL数据库。 使用以下apt命令在系统中安装语言环境。

apt install locales

生成新的“UTF-8”语言环境,并将其设置为系统上的默认语言环境。

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

接下来,使用以下命令检查区域设置。

locale

你应该把当前使用的系统区域设置为'UTF-8'。

第2步 - 安装Zammad票务系统

Zammad可以通过以下两种方式安装:从源代码手动安装或从存储库包安装。 在本教程中,我们将从存储库安装Zammad。

将新的Zammad密钥和存储库添加到系统。

wget -qO - https://deb.packager.io/key | sudo apt-key add -
echo "deb https://deb.packager.io/gh/zammad/zammad xenial stable" | sudo tee /etc/apt/sources.list.d/zammad.list

更新存储库并使用apt命令安装Zammad,如下所示。

sudo apt update
sudo apt install zammad


注意:

Zammad将自动安装其他所需的软件包,包括Nginx Web服务器和PostgreSQL数据库。

当你完成安装,你会看到一个结果simialr到下面的截图所示。

Zammad与其他必需的软件包一起安装在系统上。

第3步 - 安装和配置SSL Letsencrypt

在本教程中,我们将配置Zammad以使用HTTPS进行客户端和服务器之间的安全连接。 我们将使用Letsencrypt提供的免费SSL,并且可以使用letsencrypt工具进行配置。

使用apt命令从官方存储库安装letsencrypt工具。

apt install letsencrypt

Letsencrypt工具已安装。 现在进入Nginx配置目录'/ etc / nginx /'并编辑默认的虚拟主机文件。

cd /etc/nginx/sites-available/
vim default

粘贴下面的“ 服务器{..} ”部分的配置。

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

而已。 保存更改,然后重新启动nginx。

systemctl restart nginx

接下来,使用下面的letsencrypt命令为您自己的域名生成一个新的SSL证书。

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

您将被问到邮件更新通知,输入您的电子邮件。

还会询问Letsencrypt服务条款(TOS),选择“同意”并按Enter键。

生成SSL证书后,您将看到类似于下面显示的结果。

所有证书文件在'/ etc / letsencrypt / live /'目录中都可用,并且Zammad的新SSL证书文件已经生成。

第4步 - 为Zammad配置Nginx

在Zammad安装过程中会自动安装Nginx Web服务器。 Zammad有一个虚拟主机配置,位于'/ etc / nginx / sites-available'目录中。

在这一步中,我们需要编辑zammad虚拟主机文件“zammad.conf”来实现SSL配置。

转到“sites-available”目录,用vim编辑“zammad.conf”文件。

cd /etc/nginx/sites-available/
vim zammad.conf

删除所有行并粘贴下面的配置。

#
# this is the nginx config for zammad
#

upstream zammad {
    server localhost:3000;
}

upstream zammad-websocket {
    server localhost:6042;
}

# Added - Automatically redirect HTTP to HTTPS Nginx
server {
    listen 80;
    server_name zammad.irsyadf.me;
    return 301 https://$host$request_uri;
}

# Added - HTTPS configuration for Zammad
server {
    listen 443 http2 ssl;

    ssl_certificate /etc/letsencrypt/live/zammad.irsyadf.me/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/zammad.irsyadf.me/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/domain name 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;
    }
}

保存更改并退出编辑器。

因此,Zammad虚拟主机已启用SSL。 现在,测试配置并确保没有错误。 然后重新启动nginx web服务器。

nginx -t
systemctl restart nginx

Zammad虚拟主机现在使用SSL配置。

第5步 - Zammad配置

Zammad和其他软件包(包括Nginx和PostgreSQL)已经安装,虚拟主机配置也已经完成。 现在我们需要通过Web浏览器来执行Zammad的安装和配置。

打开您的网页浏览器并输入zammad URL“zammad.hakase-labs.co”。 您将被自动重定向到HTTPS连接。

点击“ 设置新系统 ”。

下一页是管理员配置。 在这里,输入像admin用户,电子邮件和密码的详细信息。 然后点击“ 创建

对于组织名称,键入您的组织名称“Hakase-labs Inc”,然后单击“ 下一步”

对于电子邮件配置,请点击“ 继续 ”。 我们可以从设置页面进行电子邮件通知配置。

接下来,在频道配置窗口中,点击“ 跳过 ”。

现在您可以看到带有美观UI的Zammad管理仪表板。

已经安装了Zammad并启用了HTTPS。 它以Nginx作为Web服务器,PostgreSQL作为Linux Ubuntu 16.04上的数据库安装。

第6步 - 其他技巧

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

systemctl start zammad
systemctl status zammad
systemctl restart zammad

如果要配置单个服务,可以使用如下所示的特定命令。

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

Ubuntu 16.04 Xenial Xerus上的Zammad安装已经完成。

参考

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

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

支付宝扫一扫打赏

微信扫一扫打赏