项目简介

开源客服工单系统的老牌选手

osTicket 是一款诞生已久却依然活跃的开源客服工单系统(Help Desk Ticketing System),由 Enhance Consulting & Engineering 团队主导开发,并以 MIT 风格的开源协议在 GitHub 上持续维护。对于运维工程师、IT 支持团队以及中小型企业的客服部门来说,它提供了一个无需付费授权就能搭建专业级工单平台的可行方案。截至目前,osTicket 在 GitHub 上已收获超过 3,700 颗星、1,800 多次 Fork,是中文社区以外最被广泛部署的开源客服系统之一。

osTicket 项目封面

它的核心理念非常朴素:让用户通过网站、邮件或电话创建工单(Ticket),让客服坐席(Agent)在统一的后台界面中协作处理、跟踪进度并归档历史记录。在 SaaS 客服系统动辄按坐席每月收费几十美金的今天,osTicket 这种"一次部署、长期使用"的模式依然具有相当的吸引力。

为什么选择 osTicket

相比 Zendesk、Freshdesk 等商业 SaaS 产品,osTicket 的最大优势是数据自主可控——所有工单、附件、客户信息都存储在你自己的服务器上,敏感信息不会流经第三方。同时它的学习曲线相对平缓:如果你熟悉 WordPress 的安装过程,那么部署 osTicket 几乎不会有任何障碍。

核心功能与架构

工单流转的完整链路

osTicket 的工作流程被设计为三段式闭环:

  1. 工单创建:用户通过网站表单、邮件(IMAP 拉取)或电话(坐席手工录入)发起支持请求;
  2. 分配与处理:系统根据预设的过滤规则将工单自动分配到部门、团队或具体坐席,坐席在 Web 后台回复用户;
  3. 归档与统计:已解决的工单进入关闭状态,所有沟通记录以时间线形式保存,支持按部门、SLA、优先级等多维度检索。

这套机制覆盖了一个客服系统最核心的诉求——让请求不丢失、让响应可追踪、让管理者看得见全貌

多渠道接入能力

osTicket 真正让运维人省心的地方,是它对多渠道请求的整合能力。系统内置的邮件管道(Email Pipelines)模块支持通过 POP3/IMAP 拉取邮箱,并通过 STMP 发信,几乎可以无缝对接企业现有的域名邮箱(如 support@yourdomain.com)。这意味着你不需要为客服单独建立一个用户提交入口,用户的原始邮件就能自动转成工单。对于习惯用 Web 表单的用户,osTicket 也提供了可视化表单构建器,管理员可以在后台拖拽字段,生成带验证规则的自定义门户页面。

技术架构概览

从代码结构来看,osTicket 基于经典的 LAMP 栈构建:

  • 后端语言:PHP(要求 8.2 至 8.4,推荐 8.4),遵循面向对象的设计模式;
  • 数据库:MySQL 5.5 及以上,存储工单、用户、系统配置等结构化数据;
  • 前端:服务端渲染的 HTML 页面配合 jQuery、FontAwesome 等组件,无独立的前后端分离层;
  • 依赖组件:使用了 PEAR、HTMLawed(HTML 安全过滤)、mPDF(PDF 附件生成)、laminas-mail(邮件协议处理)等成熟库。

这种"传统但不陈旧"的架构决定了 osTicket 的部署兼容性极强——你可以在几乎任何一台安装了 Apache/IIS、PHP、MySQL 的服务器上跑起来。

快速上手

环境准备

在开始安装前,请确保你的服务器已经准备好以下组件:

# Ubuntu/Debian 系统一键安装依赖
sudo apt update
sudo apt install -y apache2 mysql-server php php-mysqli \
    php-gd php-imap php-intl php-mbstring php-xml php-zip \
    php-curl php-bcmath php-imagick

# 重启 Apache 加载 PHP 模块
sudo systemctl restart apache2

PHP 8.2 至 8.4 是官方明确支持的版本范围。如果你的发行版仓库里只有更老的 PHP,可以通过 ondrej/php PPA 或源码编译升级。MySQL 部分建议使用 5.7 或 8.0 版本,并提前创建好一个空数据库:

CREATE DATABASE osticket CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'osticket'@'localhost' IDENTIFIED BY 'YourStrongPassword';
GRANT ALL PRIVILEGES ON osticket.* TO 'osticket'@'localhost';
FLUSH PRIVILEGES;

通过 Git 部署最新代码

osTicket 官方推荐使用 Git 方式部署,这样后续升级时只需 git pull 即可获得最新代码。假设你的 Web 根目录是 /var/www/htdocs,可以按照以下步骤操作:

```bash

1. 克隆仓库到临时目录

cd /tmp
git clone https://github.com/osTicket/osTicket.git

2. 使用官方部署脚本把代码复制到目标目录

cd osTicket
php manage.php deploy --setup /var/www/htdocs/osticket/

3. 设置必要的文件权限

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

项目信息

项目
仓库 osTicket/osTicket
语言 PHP
Star 3,788
Fork 1,819
主页 osticket.com

参考链接