如何在CentOS 7上安装Zammad票务系统
Zammad是一个用Ruby编写的开源帮助台/客户支持系统。 这是一个基于网络的票务系统,具有许多功能,包括支持通过Facebook,电报,聊天和电子邮件等多个渠道管理客户沟通。 Zammad分布在GNU AFFERO通用公共许可证(AGPL)下,可以安装在Linux,AIX,FreeBSD,OpenBSD和MacOSX等不同平台上。 它在Github上可用,并且可以免费安装在您自己的服务器上。
在本教程中,我将向您展示如何使用Nginx Web服务器和PostgreSQL来为数据库系统安装和配置Zammad票务系统。 我们将使用CentOS 7服务器,并使用SSL Letsencrypt来保护客户端 - 服务器连接。
我们将要做什么
- 安装Zammad票务系统
- 安装并配置Letsencrypt
- 配置Nginx Web服务器
- Zammad配置
- 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票务系统已完成。