如何在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来保护客户端 - 服务器连接。
我们将要做什么
- 在Ubuntu 16.04上配置语言环境
- 安装Zammad票务系统
- 安装和配置SSL Letsencrypt
- 配置Nginx HTTPS
- Zammad配置
- 其他提示
先决条件
- 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安装已经完成。