如何在Ubuntu 18.04 LTS上安装osTicket

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

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

要求

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

在你开始之前

检查Ubuntu版本。

lsb_release -ds
# Ubuntu 18.04.2 LTS

创建一个新的 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 php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-mbstring php7.2-curl php7.2-gd php7.2-mysql php7.2-json php7.2-xml php7.2-imap php7.2-intl php-apcu

检查版本。

php -v
# PHP 7.2.19-0ubuntu0.18.04.2 (cli) (built: Aug 12 2019 19:34:28) ( NTS )

检查已安装的PHP扩展。

php -m

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

安装MySQL

安装MySQL。

sudo apt install -y mysql-server

检查版本。

mysql --version
# mysql  Ver 14.14 Distrib 5.7.27, for Linux (x86_64) using  EditLine wrapper

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

sudo mysql_secure_installation

以root用户身份登录MySQL。

sudo mysql -u root -p
# Enter password:

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

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.0 (Ubuntu)

配置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.2-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