Zammad 邮件工单系统部署

2022年9月30日 作者 ruike

一、安装环境

  • centos 7
  • Jave E

二、前置安装

1、其他软件依赖项

yum install wget epel-release

# CentOS 7
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

2、安装设置Elasticsearch

(1)安装

rpm --import https://artifacts.elastic.co/GPG-KEY-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

yum install -y elasticsearch
/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment

(2)设置

#启动
systemctl start elasticsearch
systemctl enable elasticsearch

三、安装Zammad

1、确认语言环境

# 列出您当前的区域设置。
locale |grep "LANG="

# 如果上面没有返回<lang_code>.utf8,您可以按以下方式纠正此问题。
localectl set-locale LANG=en_US.utf8

2、添加存储库

# 安装存储库密钥
rpm --import https://dl.packager.io/srv/zammad/zammad/key

# RHEL 7 / CentOS 7
wget -O /etc/yum.repos.d/zammad.repo https://dl.packager.io/srv/zammad/zammad/stable/installer/el/7.repo

3、安装Zammad

# 安装PostgreSQL数据库(或许你也可以安装mysql)
yum install postgresql14-server -y
postgresql-14-setup initdb
systemctl start postgresql-14
systemctl enable postgresql-14

# 安装zammad
yum install zammad -y

四、启动项目

1、修改前端文件权限

chcon -Rv --type=httpd_sys_content_t /opt/zammad/public/

setsebool httpd_can_network_connect on -P

semanage fcontext -a -t httpd_sys_content_t /opt/zammad/public/

restorecon -Rv /opt/zammad/public/

chmod -R a+r /opt/zammad/public/

2、放行防火墙

# 80端口
firewall-cmd --zone=public --add-service=http --permanent
# 443端口
firewall-cmd --zone=public --add-service=https --permanent

firewall-cmd --reload

3、连接Elasticsearch

# Set the Elasticsearch server address
zammad run rails r "Setting.set('es_url', 'http://localhost:9200')"

# Build the search index
zammad run rake zammad:searchindex:rebuild

4、启动zammad

systemctl start zammad
systemctl start zammad-web
systemctl start zammad-worker
systemctl start zammad-websocket

# 开机启动
systemctl enable zammad
systemctl enable zammad-web
systemctl enable zammad-worker
systemctl enable zammad-websocket

其它命令汇总

$ # Zammad service to start all services at once
$ systemctl (status|start|stop|restart) zammad

$ # Zammads internal puma server (relevant for displaying the web app)
$ systemctl (status|start|stop|restart) zammad-web

$ # Zammads background worker - relevant for all delayed- and background jobs
$ systemctl (status|start|stop|restart) zammad-worker

$ # Zammads websocket server for session related information
$ systemctl (status|start|stop|restart) zammad-websocket