如何在Debian 10上安装osTicket

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com

osTicket 是一个开放源代码的客户支持票务系统。 osTicket源代码公开托管在 Github。在本教程中,您将学习如何在Debian 10(buster)上安装和配置osTicket。

要求

运行Nginx或Apache的HTTP服务器。本指南将使用Nginx。
PHP 5.6或更高版本
mysqligdgettextimapjsonmbstringxml PHP扩展
MySQL数据库版本5.0或更高版本

在你开始之前

检查Debian版本。

lsb_release -ds
# Debian GNU/Linux 10 (buster)

创建一个新的 non-root 用户帐户 sudo 访问并切换到它。

adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe

注意:更换 johndoe 使用您的用户名。

设置时区。

sudo dpkg-reconfigure tzdata

确保您的系统是最新的。

sudo apt update && sudo apt upgrade -y

安装所需的软件包。

sudo apt install -y zip unzip curl wget git

安装PHP

安装PHP以及必要的PHP扩展。

sudo apt install -y php php-cli php-fpm php-common php-mbstring php-curl php-gd php-mysql php-json php-xml php-imap php-intl php-apcu

检查版本。

php -v
# PHP 7.3.4-2 (cli) (built: Apr 13 2019 19:05:48) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
#    with Zend OPcache v7.3.4-2, Copyright (c) 1999-2018, by Zend Technologies

检查已安装的PHP扩展。

php -m

# mbstring
# curl
# gd
# PDO
# mysqli
# openssl
# . . .

安装MariaDB

安装MariaDB。

sudo apt install -y mariadb-server

检查版本。

mysql --version
# mysql  Ver 15.1 Distrib 10.3.15-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

跑过 mysql_secure_installation 脚本来提高您的MariaDB安装的安全性。

sudo mysql_secure_installation

以root用户身份登录MariaDB。

sudo mysql -u root -p
# Enter password:

创建一个新的MariaDB数据库和用户,并记住凭据。

CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
exit;

安装Nginx

安装Nginx。

sudo apt install -y nginx

检查版本。

sudo nginx -v
# nginx version: nginx/1.14.2

配置Nginx以与osTicket一起使用。

sudo vim /etc/nginx/sites-available/osticket.conf

用以下内容填充文件。

server {

  listen 80;
  server_name example.com;

  root /var/www/osticket/upload;
  index index.php index.html;

  set $path_info "";

  location ~ /include {
    deny all;
    return 403;
  }

  if ($request_uri ~ "^/api(/[^?]+)") {
    set $path_info $1;
  }

  location ~ ^/api/(?:tickets|tasks).*$ {
    try_files $uri $uri/ /api/http.php?$query_string;
  }

  if ($request_uri ~ "^/scp/.*.php(/[^?]+)") {
    set $path_info $1;
  }

  if ($request_uri ~ "^/.*.php(/[^?]+)") {
    set $path_info $1;
  }

  location ~ ^/scp/ajax.php/.*$ {
    try_files $uri $uri/ /scp/ajax.php?$query_string;
  }

  location ~ ^/ajax.php/.*$ {
    try_files $uri $uri/ /ajax.php?$query_string;
  }

  location / {
    try_files $uri $uri/ index.php;
  }

  location ~ .php$ {
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    fastcgi_param PATH_INFO $path_info;
    fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
  }

}

激活新的 osticket.conf 通过将文件链接到 sites-enabled 目录。

sudo ln -s /etc/nginx/sites-available/osticket.conf /etc/nginx/sites-enabled

测试配置。

sudo nginx -t

重新加载Nginx。

sudo systemctl reload nginx.service

安装osTicket

创建一个文档根目录。

sudo mkdir -p /var/www/osticket

更改所有权 /var/www/osticket 目录到 johndoe

sudo chown -R johndoe:johndoe /var/www/osticket

导航到文档根文件夹。

cd /var/www/osticket

下载并解压缩最新版本的osTicket。

wget https://github.com/osTicket/osTicket/releases/download/v1.12.2/osTicket-v1.12.2.zip
unzip osTicket-v1.12.2.zip
rm osTicket-v1.12.2.zip

复制样本配置文件。

sudo cp upload/include/ost-sampleconfig.php upload/include/ost-config.php

更改所有权 /var/www/osticket 目录到 www-data

sudo chown -R www-data:www-data /var/www/osticket

完成所有配置后,就可以访问osTicket Web安装向导了。在网络浏览器中打开您的站点,然后按照屏幕上的说明完成安装。

安装后出于安全原因删除 setup 目录。

sudo rm -rf upload/setup
sudo chmod 0644 upload/include/ost-config.php

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com