Cách cài đặt hệ thống Zammad Ticketing trên CentOS 7

theanh

Administrator
Nhân viên
Zammad là một hệ thống hỗ trợ khách hàng/trợ giúp mã nguồn mở được viết bằng Ruby. Đây là một hệ thống tạo phiếu dựa trên web với nhiều tính năng, bao gồm hỗ trợ quản lý giao tiếp với khách hàng qua nhiều kênh như Facebook, telegram, trò chuyện và email. Zammad được phân phối theo Giấy phép công cộng GNU AFFERO (AGPL) và có thể được cài đặt trên nhiều nền tảng khác nhau như Linux, AIX, FreeBSD, OpenBSD và MacOSX. Nó có sẵn trên Github và miễn phí để cài đặt trên máy chủ của riêng bạn.

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt và cấu hình Hệ thống tạo phiếu Zammad bằng máy chủ web Nginx và PostgreSQL cho hệ thống cơ sở dữ liệu. Chúng tôi sẽ sử dụng máy chủ CentOS 7 và sử dụng SSL Letsencrypt để bảo mật kết nối máy khách-máy chủ.

Những gì chúng tôi sẽ làm​

  1. Cài đặt Hệ thống bán vé Zammad
  2. Cài đặt và cấu hình Letsencrypt
  3. Cấu hình máy chủ web Nginx
  4. Cấu hình Zammad
  5. Mẹo bổ sung về Zammad

Điều kiện tiên quyết​

  • Hệ thống CentOS 7
  • RAM ít nhất 2GB
  • Quyền root

Bước 1 - Cài đặt Hệ thống bán vé Zammad​

Trước khi cài đặt hệ thống bán vé Zammad trên CentOS 7, chúng ta cần cài đặt kho lưu trữ EPEL (Gói bổ sung cho Enterprise Linux) để cài đặt máy chủ web Nginx.

Thêm kho lưu trữ EPEL bằng cách cài đặt gói epel bằng lệnh yum sau.
Mã:
sudo yum -y install epel-release
Kho lưu trữ EPEL đã được thêm vào hệ thống.

Tiếp theo, nhập khóa Zammad bằng lệnh rpm import.
Mã:
sudo rpm --import https://rpm.packager.io/key
Thêm kho lưu trữ Zammad bằng cách tạo tệp .repo mới trong thư mục 'yum.repos.d' bằng trình soạn thảo vim.
Mã:
vim /etc/yum.repos.d/zammad.repo
Dán thông tin sau vào đó.
Mã:
[zammad]
 name=Kho lưu trữ cho ứng dụng zammad/zammad.
 baseurl=https://rpm.packager.io/gh/zammad/zammad/centos7/stable
 enabled=1
Vậy là xong. Lưu và thoát.

Bây giờ hãy cài đặt Zammad bằng lệnh yum sau.
Mã:
sudo yum -y install zammad
Lưu ý: Khi chúng ta cài đặt Zammad, nó sẽ tự động cài đặt các gói cần thiết khác, bao gồm máy chủ web Nginx và cơ sở dữ liệu PostgreSQL.

Và sau khi cài đặt hoàn tất, bạn sẽ thấy kết quả tương tự như kết quả hiển thị bên dưới.



Zammad và các gói khác - máy chủ web Nginx và cơ sở dữ liệu PostgreSQL - đã được cài đặt.

Bước 2 - Cài đặt và cấu hình Letsencrypt SSL​

Trong hướng dẫn này, chúng ta muốn thiết lập Zammad dưới Nginx HTTPS và sử dụng SSL miễn phí từ Letsencrypt. Và chúng ta sẽ thực hiện điều đó trong bước này và sử dụng công cụ certbot (Letsencrypt Agent) có thể được cài đặt từ kho lưu trữ.

Cài đặt công cụ gói certbot từ kho lưu trữ bằng yum.
Mã:
yum -y install certbot
Tiếp theo, chúng ta cần tạo chứng chỉ SSL mới bằng công cụ certbot. Đảm bảo bạn có tên miền riêng để tạo tệp chứng chỉ. Chúng ta sẽ sử dụng tên miền 'zammad.hakase-labs.com'.

Đi tới thư mục cấu hình Nginx và mở tệp nginx.conf trong trình soạn thảo vim.
Mã:
cd /etc/nginx/
vim nginx.conf
Dán cấu hình sau vào khối 'server {}'.
Mã:
location ~ /.well-known {
 allow all;
 }
Lưu và thoát. Sau đó kiểm tra cấu hình và khởi động lại máy chủ web.
Mã:
nginx -t
systemctl restart nginx


Trước khi tạo tệp chứng chỉ SSL, hãy đảm bảo cổng hệ thống của bạn cho HTTP và HTTPS không bị tường lửa chặn. Bạn có thể mở các cổng HTTP và HTTPS trên CentOS bằng lệnh firewall-cmd như được hiển thị bên dưới.
Mã:
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Bây giờ hãy tạo tệp chứng chỉ SSL bằng lệnh certbot sau.
Mã:
certbot certonly --standalone -d zammad.hakase-labs.co
Bạn sẽ được hỏi về địa chỉ email của mình để thông báo gia hạn - hãy nhập địa chỉ email của bạn và nhấn 'Enter' để tiếp tục. Đối với Điều khoản dịch vụ (TOS) của Letsencrypt, hãy nhập 'A' để đồng ý. Tương tự như vậy, khi được yêu cầu chia sẻ email với EFF Foundation, chỉ cần nhập 'N' để trả về số không.



Khi lệnh certbot hoàn tất, bạn sẽ thấy kết quả như hiển thị bên dưới.



Các tệp chứng chỉ SSL mới cho cài đặt Zammad của chúng tôi đã được tạo. Tất cả các chứng chỉ đều nằm trong thư mục '/etc/letsencryp/live/'.

Bước 3 - Cấu hình máy chủ web Nginx​

Trong bước này, chúng tôi sẽ cấu hình tệp máy chủ ảo cho Zammad. Nó được tự động tạo trong thư mục '/etc/nginx/conf.d/' trong quá trình cài đặt zammad.

Đi đến '/etc/nginx/conf.d/' và chỉnh sửa tệp zammad.conf.
Mã:
cd /etc/nginx/conf.d/
vim zammad.conf
Thay đổi tất cả cấu hình như hiển thị bên dưới.
Mã:
#
 # đây là cấu hình Nginx cho 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;
 }
 
 máy chủ {
 lắng nghe 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 bật;
 ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
 ssl_ecdh_curve secp384r1;
 ssl_session_cache shared:SSL:10m;
 ssl_session_tickets tắt;
 ssl_stapling bật;
 ssl_stapling_verify bật;
 resolver 8.8.8.8 8.8.4.4 valid=300 giây;
 resolver_timeout 5 giây;
 add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
 add_header X-Frame-Options DENY;
 add_header X-Content-Type-Options nosniff;
 
 # thay thế 'localhost' bằng fqdn của bạn nếu bạn muốn sử dụng zammad từ xa
 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 Nâng cấp $http_upgrade;
 proxy_set_header Kết nối "Nâng cấp";
 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;
 }
 
 vị trí / {
 proxy_set_header Máy chủ $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 văn bản/văn bản thuần túy/xml văn bản/css image/svg+xml application/javascript application/x-javascript application/json application/xml;
 gzip_proxied any;
 }
 }
Lưu và thoát.

Tiếp theo, kiểm tra cấu hình Nginx và đảm bảo không có lỗi. Sau đó khởi động lại máy chủ web.
Mã:
nginx -t
systemctl restart nginx
Tệp máy chủ ảo zammad hiện đang sử dụng SSL. Kiểm tra bằng lệnh netstat và đảm bảo bạn có cổng 443 cho HTTPS với trạng thái 'LISTEN'.
Mã:
netstat -plntu

Bước 4 - Cấu hình Zammad​

Zammad đã được cài đặt trên CentOS 7 với Nginx làm máy chủ web và PostgreSQL làm máy chủ cơ sở dữ liệu và đang chạy dưới kết nối HTTPS. Trong bước này, chúng ta sẽ thực hiện cấu hình cơ bản của Hệ thống vé Zammad.

Mở trình duyệt web của bạn và nhập địa chỉ zammad 'zammad.hakase-labs.co'. Bạn sẽ được chuyển hướng đến kết nối HTTPS. Nhấp vào nút 'Thiết lập hệ thống mới' để tiếp tục.



Bây giờ hãy điền tất cả các cấu hình quản trị. Tên người dùng, địa chỉ email và mật khẩu, sau đó nhấp vào 'Tạo'.



Đối với tên tổ chức, hãy nhập tên công ty của bạn và nhấp vào 'Tiếp theo'.



Đối với thông báo qua email, hãy nhấp vào 'Tiếp tục'.

Chúng ta có thể thực hiện cấu hình Thông báo qua email từ trang cài đặt.



Đối với cấu hình kênh, hãy nhấp vào 'Bỏ qua'.



Và bây giờ bạn thấy bảng điều khiển quản trị Zammad với giao diện người dùng đẹp mắt.



Zammad đã được cài đặt với HTTPS được bật và cấu hình đã hoàn tất.

Bước 5 - Bật Zammad Dịch vụ​

Zammad đi kèm với ba thành phần - máy chủ ứng dụng web, quy trình làm việc Zammad và máy chủ websocket. Chúng ta có thể quản lý tất cả các dịch vụ bằng lệnh systemcl bên dưới.
Mã:
systemctl start zammad
systemctl status zammad
systemctl restart zammad
Nếu bạn muốn cấu hình từng dịch vụ một, bạn có thể sử dụng các thành phần cụ thể như được hiển thị bên dưới.
Mã:
systemctl status zammad-web
systemctl status zammad-worker
systemctl status zammad-websocket
Quá trình cài đặt Zammad Ticketing System trên CentOS 7 đã hoàn tất.

Tham khảo​

 
Back
Bên trên