osTicket 工单系统详细使用教程
下面以 osTicket 自建版 1.18.x / 1.17.x 为例,菜单名称同时保留英文,便于对照界面。
截至 2026 年 6 月,最新正式版为 v1.18.4,该版本包含 2026 年 6 月安全补丁。官方安装文档与下载页对 PHP 版本范围存在少许差异,因此新部署采用 PHP 8.2 是目前两者兼容范围的稳妥选择。(GitHub)
一、先理解 osTicket 的核心概念
| 名称 | 作用 |
|---|---|
| 用户 User | 提交、查看和回复工单的客户或公司员工 |
| 客服 Agent | 处理工单的技术员、客服、运维或审批人员 |
| 部门 Department | 决定工单归属和客服可见范围,如 IT、财务、人事 |
| 角色 Role | 决定客服在某个部门可以执行哪些操作 |
| 团队 Team | 将不同部门的客服组成跨部门处理组 |
| 帮助主题 Help Topic | 用户提交工单时选择的业务分类 |
| 表单 Form | 收集设备、地点、故障类型等附加信息 |
| 工单过滤器 Ticket Filter | 新工单创建时执行自动分流、分配、拒绝等动作 |
| SLA | 决定工单经过多少工作时间后变成“超时” |
| 任务 Task | 工单内部的待办事项,只对客服可见 |
最重要的关系可以记成:
Help Topic / 邮箱 / Filter
↓
Department
↓
Agent 或 Team
↓
Role 权限
部门主要决定客服能够看到哪些工单;角色决定客服能对这些工单做什么;团队适合组织跨部门专家处理特定问题。(osTicket 文档)
二、安装 osTicket
已经安装完成的,可以直接跳到第三部分。
1. 准备运行环境
建议环境:
Web 服务器:Apache 或 IIS PHP:8.2 数据库:MySQL 5.5+ 或兼容的 MariaDB HTTPS:强烈建议
常用 PHP 扩展包括:
mysqli imap mbstring intl xml gd fileinfo curl zip opcache
其中 IMAP 用于邮件收取,GD 用于图片处理,mbstring 和 intl 对中文及多语言处理较重要。安装程序会检查必要条件。(osTicket 文档)
2. 创建数据库
在 MySQL 中创建数据库和专用账号,例如:
CREATE DATABASE osticket CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'osticket'@'localhost' IDENTIFIED BY '请替换为强密码'; GRANT ALL PRIVILEGES ON osticket.* TO 'osticket'@'localhost'; FLUSH PRIVILEGES;
安装期间使用的数据库账号必须对该数据库具有完整权限。(osTicket 文档)
3. 上传程序文件
从官方页面下载对应版本,解压后,将压缩包中 upload 目录里的全部文件复制到网站目录,例如:
/var/www/html/support/
确保安装程序能够写入:
include/ost-config.php
然后访问:
https://你的域名/support/setup/
填写:
- Helpdesk 名称
- 默认支持邮箱
- 管理员姓名、邮箱、账号和密码
- 数据库主机、数据库名、账号和密码
安装程序会创建数据表并写入配置文件。(osTicket 文档)
4. 安装后的安全处理
安装成功后立即完成:
1. 删除 setup 目录 2. 取消 include/ost-config.php 的写权限 3. 启用 Helpdesk 4. 配置 HTTPS 5. 设置正确的时区
Linux 权限示例:
chmod 0644 /var/www/html/support/include/ost-config.php rm -rf /var/www/html/support/setup
官方明确要求安装后删除 setup 目录,并撤销配置文件写权限。(osTicket 文档)
5. 登录地址
用户门户:
https://你的域名/support/
客服和管理员后台:
https://你的域名/support/scp/
管理员登录后,可在右上角切换:
Agent Panel Admin Panel
6. 安装中文语言包
在下载 osTicket 时选择与核心版本匹配的中文语言包,得到 .phar 文件,将其放入:
include/i18n/
然后进入:
Admin Panel → Settings → System → System Languages
将中文设为 Primary Language,或作为 Secondary Language 供用户和客服自行选择。(osTicket)
三、首次初始化配置
建议严格按照以下顺序配置,避免后面反复修改。
1. 公司与系统信息
进入:
Admin Panel → Settings → Company
配置:
- 公司名称
- 公司地址和联系电话
- Helpdesk 名称
- 公司 Logo
- 登录背景
- 首页欢迎语
- 系统离线页面
- 提交成功页面
公司信息可以在邮件模板、签名和自动回复中通过变量调用。(osTicket 文档)
然后进入:
Admin Panel → Settings → System
重点设置:
- Helpdesk URL
- 默认时区
- 日期格式
- 默认语言
- 系统日志保留期限
- 富文本编辑
- 附件存储方式
- 单个附件最大尺寸
- 是否要求登录后才能下载附件
PHP 中的 upload_max_filesize 和 post_max_size 也必须大于 osTicket 设置的附件大小。(osTicket 文档)
四、建立部门、角色、客服和团队
1. 创建部门
进入:
Admin Panel → Agents → Departments → Add New Department
推荐示例:
IT 服务台 网络运维 应用系统 财务支持 人事支持
部门配置重点:
- Public / Private:是否向用户显示部门名称。
- SLA:该部门默认时限。
- Schedule:部门工作时间。
- Manager:部门负责人。
- Email:该部门使用的回复邮箱。
- Signature:部门邮件签名。
- Ticket Assignment:是否限制只能分配给本部门人员。
如果不希望客户知道内部真实组织结构,可以把部门设为 Private,并通过 Help Topic 对外展示业务分类。(osTicket 文档)
2. 创建角色
进入:
Admin Panel → Agents → Roles → Add New Role
推荐至少创建:
一线客服 二线工程师 部门主管 只读审计
常见权限包括:
- 查看工单
- 回复工单
- 创建内部备注
- 分配或转移工单
- 修改工单
- 关闭工单
- 删除工单
- 合并工单
- 管理用户
- 查看统计数据
角色是按照“部门”授予客服的。同一个客服可以在 IT 部门拥有“主管”角色,在财务部门只有“只读”角色。(osTicket 文档)
3. 添加客服账号
进入:
Admin Panel → Agents → Agents → Add New Agent
配置:
- 姓名
- 邮箱
- 用户名
- 主部门
- 主角色
- 扩展部门访问权限
- 管理员权限
- 是否只允许查看直接分配给自己的工单
- 是否处于休假模式
“休假模式”开启后,该客服不会出现在自动分配列表中,也不会收到相关通知。(osTicket 文档)
4. 创建跨部门团队
进入:
Admin Panel → Agents → Teams → Add New Team
例如:
重大故障处理组 ERP 专家组 VIP 客户支持组 安全事件响应组
团队成员可以来自不同部门。工单可以直接分配给团队,再由团队中的成员认领或处理。(osTicket 文档)
五、配置帮助主题、列表和自定义表单
1. 创建自定义列表
进入:
Admin Panel → Manage → Lists → Add New Custom List
例如创建“设备类型”:
台式机 笔记本 打印机 服务器 交换机 手机 其他
也可以创建:
- 办公地点
- 故障类型
- 业务系统
- 资产类别
- 影响范围
- 服务区域
自定义列表可以作为表单中的下拉框、自动补全或多选字段。(osTicket 文档)
2. 创建自定义表单
进入:
Admin Panel → Manage → Forms → Add New Custom Form
例如创建“IT 故障信息”表单:
设备类型:下拉列表,必填 资产编号:短文本 办公地点:下拉列表,必填 联系电话:电话 故障发生时间:日期时间 影响人数:数字 错误截图:文件上传 远程协助许可:复选框
字段可以设置为:
- Enabled:启用
- Visible:用户可见
- Required:提交时必填
- Editable:提交后可编辑
- Internal:仅客服可见
- Require Entry:未填写前不能完成流程
自定义表单需要绑定到 Help Topic 后,才会在对应的新建工单页面出现。(osTicket 文档)
3. 创建帮助主题
进入:
Admin Panel → Manage → Help Topics → Add New Help Topic
推荐结构:
IT 支持 ├─ 账号与密码 ├─ 电脑故障 ├─ 网络故障 ├─ 打印机故障 └─ 软件安装 人事服务 ├─ 入职办理 ├─ 离职办理 └─ 考勤与休假
每个 Help Topic 可以指定:
- 默认部门
- 默认优先级
- 默认 SLA
- 默认状态
- 自动分配的客服或团队
- 自动回复模板
- 提交成功页面
- 需要显示的自定义表单
Help Topic 是 osTicket 最重要的分流入口。用户只看到“网络故障”,不需要知道该工单内部实际进入“基础设施运维部”。(osTicket 文档)
六、配置 SLA 与工作时间
1. 创建工作时间
进入:
Admin Panel → Manage → Schedules → Add New Schedule
示例:
名称:标准工作时间 星期一至星期五:09:00–12:00,13:00–18:00 星期六、星期日:不工作 节假日:添加春节、国庆等例外日期
建议使用 Schedule 的诊断功能,验证未来 8、24 或 48 个工作小时如何计算。Schedule 可以设置为系统默认、部门默认或某个 SLA 专用。(osTicket 文档)
2. 创建 SLA
进入:
Admin Panel → Manage → SLA Plans → Add New SLA Plan
示例:
P1 紧急:2 个工作小时 P2 高:8 个工作小时 P3 普通:24 个工作小时 P4 低:72 个工作小时
SLA 中的 Grace Period 用于决定工单何时进入 Overdue。官方 SLA 页面将它描述为预期关闭时限,因此不要把它直接等同于同时包含“首次响应时间”和“解决时间”的双指标 SLA。人工设置的 Due Date 优先于 SLA。(osTicket 文档)
SLA 可绑定到:
系统默认设置 部门 Help Topic Ticket Filter 单个工单
通常推荐优先级:
Ticket Filter → Help Topic → Department → System Default
七、配置邮箱自动收发工单
这是 osTicket 最容易出问题、也是最重要的部分。
1. 添加支持邮箱
进入:
Admin Panel → Emails → Emails → Add New Email
例如:
support@example.com hr@example.com finance@example.com
配置该邮箱对应的:
- 默认部门
- 默认 Help Topic
- 默认优先级
- 显示名称
保存后会出现:
Remote Mailbox Outgoing (SMTP)
2. 配置收件邮箱
在 Remote Mailbox 中设置:
协议:IMAP 服务器:邮件服务商提供的 IMAP 主机 端口:通常为安全 IMAP 端口 加密:SSL/TLS 文件夹:INBOX 认证方式:OAuth2 或 Basic 获取频率:5 分钟
官方推荐安全 IMAP。Microsoft 365、Google Workspace 等主流服务正在逐步淘汰传统用户名密码认证,建议安装与核心版本匹配的 OAuth2 插件。(osTicket 文档)
OAuth2 插件安装位置:
include/plugins/
后台安装:
Admin Panel → Manage → Plugins → Add New Plugin
安装后必须将插件状态改为 Active。
3. 配置 SMTP 发件
进入邮箱的:
Outgoing (SMTP)
填写:
- SMTP 主机
- 端口
- SSL/TLS
- 用户名
- OAuth2 或密码认证
- 发件地址
- 是否启用认证
不建议依赖 PHP 内置的 mail(),生产环境应使用 SMTP,以降低退信和进入垃圾邮件的概率。(osTicket 文档)
4. 开启邮件获取
进入:
Admin Panel → Emails → Settings
启用:
Email Fetching Fetch on auto-cron 或外部 Cron
只开启 Email Fetching 并不会自动周期性检查邮箱,还需要执行 api/cron.php。生产环境建议配置真实 Cron,而不是依赖客服登录触发的 auto-cron。(osTicket 文档)
Linux Cron 示例:
*/5 * * * * www-data /usr/bin/php /var/www/html/support/api/cron.php
实际使用时替换:
www-data PHP 路径 osTicket 安装路径
Windows 可通过“任务计划程序”定期执行:
C:\PHP\php.exe C:\inetpub\wwwroot\support\api\cron.php
5. 测试邮箱
进入:
Admin Panel → Emails → Diagnostics
发送测试邮件。然后完成以下闭环测试:
外部邮箱发信给 support@ → osTicket 自动创建工单 → 用户收到自动确认 → 客服后台回复 → 用户收到邮件 → 用户直接回复邮件 → 回复内容追加到原工单
Diagnostics 用于验证外发邮件配置是否正常。(osTicket 文档)
八、客服日常处理工单
客服登录后进入:
Agent Panel → Tickets
默认队列包括:
- Open:未关闭工单
- Answered:客服已回复,等待用户
- My Tickets:分配给本人或所属团队
- Overdue:超过 SLA 或 Due Date
- Closed:已关闭工单
工单通常先按优先级、再按最后更新时间排序。(osTicket 文档)
标准处理流程
1. 打开工单
检查:
- 工单标题和正文
- 用户及所属组织
- Help Topic
- 部门
- 优先级
- SLA 和到期时间
- 自定义表单信息
- 附件
- 历史工单
2. 认领或分配
可以:
Assign to Me 分配给其他 Agent 分配给 Team Transfer 到其他 Department
“分配”通常是更换负责人;“转移”通常是更换部门。
3. 回复用户
在 Reply 区域输入内容,可使用:
- 附件
- 富文本
- 预设回复 Canned Response
- 部门或个人签名
- Collaborator 协同人
- 回复后状态
客服回复会出现在用户门户,并通常通过邮件发送给用户和协同人。(osTicket 文档)
4. 添加内部备注
选择:
Post Internal Note
内部备注适合记录:
排查步骤 内部沟通 账号密码已重置 供应商反馈 审批意见 现场处理记录
内部备注不会展示给普通用户。
5. 创建任务
在工单中创建 Task,例如:
网络组检查交换机 桌面组更换电脑 财务确认付款 供应商提供补丁
与工单关联的任务未完成时,该工单不能关闭。Task 只对具有对应部门访问权限的客服可见。(osTicket 文档)
6. 修改状态
推荐自定义状态:
Open 处理中 等待用户 等待供应商 已解决 Closed
osTicket 的自定义状态底层必须属于:
Open State 或 Closed State
可在以下位置管理:
Admin Panel → Manage → Lists → Ticket Statuses
7. 合并、关联和删除
- Merge Tickets:将多个工单线程合并进一个主工单。
- Link Tickets:只建立关联,不改变原工单内容。
- Delete Ticket:永久删除,无法恢复。
删除权限应只授予少数管理员或主管。(osTicket 文档)
九、用户如何提交和查看工单
用户可以通过三种方式提交:
1. 用户门户网页 2. 发送邮件到支持邮箱 3. 客服代用户创建
网页提交步骤:
访问用户门户 → Open a New Ticket → 填写邮箱和姓名 → 选择 Help Topic → 填写主题、问题说明和自定义字段 → 上传附件 → Create Ticket
用户查看工单有两种方式:
访客方式:工单号 + 邮箱,系统向邮箱发送访问链接 账号方式:登录后查看该账号下的全部工单
注册用户可以集中查看与自己关联的全部工单;访客访问一般只针对指定工单。(osTicket 文档)
十、配置自动分流规则
进入:
Admin Panel → Manage → Ticket Filters → Add New Filter
过滤器只在新工单创建时执行,不会持续扫描已经存在的工单。过滤器按照 Execution Order 顺序运行。(osTicket 文档)
示例一:财务工单自动分流
条件: 主题包含“发票” 或正文包含“报销” 动作: Department = 财务支持 Help Topic = 财务/发票 Priority = Normal Auto Assign = 财务客服组
示例二:VIP 客户
条件: 用户邮箱域名为 vipcustomer.com 动作: Priority = Emergency SLA = VIP 2 小时 Auto Assign = VIP 支持组 发送专用自动回复
示例三:拦截垃圾邮件
条件: 发件人地址命中黑名单 或主题包含指定垃圾关键词 动作: Reject Ticket Stop Processing
过滤器还可以修改状态、SLA、Help Topic、部门、优先级和负责人,或者附加自动回复。(osTicket 文档)
十一、知识库和预设回复
1. 启用知识库
进入:
Admin Panel → Settings → Knowledgebase
启用:
Enable Knowledge Base Canned Responses
可以选择是否要求用户登录后才能查看知识库。(osTicket 文档)
2. 创建知识库文章
进入:
Agent Panel → Knowledgebase
推荐分类:
账号与密码 电脑使用 网络问题 业务系统 打印机 常见流程
文章示例:
如何重置域账号密码 VPN 无法连接的排查方法 打印机驱动安装方法 新员工账号申请流程
3. 创建 Canned Response
预设回复适合高频场景:
已收到,正在处理中 请提供错误截图 请提供设备资产编号 请重启后再次测试 问题已解决,请确认
客服调用预设回复后仍可在发送前修改内容。
十二、搜索、队列和统计
高级搜索
在:
Agent Panel → Tickets → Advanced Search
可按以下字段组合查询:
- 部门
- Help Topic
- 状态
- 优先级
- 用户邮箱
- 组织
- 创建日期
- 最后更新时间
- 分配人
- 自定义字段
搜索条件可以保存为个人队列,并自定义显示列和 Quick Filter。(osTicket 文档)
推荐保存:
今天新增工单 我的超时工单 等待用户超过三天 VIP 未关闭工单 本月已关闭工单 高优先级未分配工单
十三、API 对接
进入:
Admin Panel → Manage → API Keys
创建 API Key 时需要绑定调用方源 IP。调用时通过:
X-API-Key
请求头发送密钥。osTicket 当前官方 API 主要支持创建工单,不支持通过标准 API 修改或删除既有工单。(osTicket 文档)
JSON 创建工单示例:
curl -X POST "https://support.example.com/api/tickets.json" \
-H "X-API-Key: 你的API密钥" \
-H "Content-Type: application/json" \
-d '{
"alert": true,
"autorespond": true,
"source": "API",
"name": "张三",
"email": "zhangsan@example.com",
"subject": "无法登录业务系统",
"message": "data:text/plain,登录时提示账号被锁定",
"ip": "192.0.2.10"
}'
成功时返回 HTTP 201 Created 和新工单号。(osTicket 文档)
十四、备份、升级与安全
1. 备份内容
必须备份:
MySQL 数据库 osTicket 程序目录 include/ost-config.php 语言包和插件 自定义 Logo 文件系统附件目录 Web 服务器配置 Cron 配置
数据库示例:
mysqldump -u root -p \ --single-transaction \ --routines \ --triggers \ osticket > osticket-$(date +%F).sql
文件示例:
tar -czf osticket-files-$(date +%F).tar.gz \ /var/www/html/support
2. 升级步骤
推荐流程:
1. 暂停 Helpdesk 2. 备份数据库和全部文件 3. 确认 PHP 与插件兼容性 4. 使用新版 upload 内容覆盖程序文件 5. 保留现有 ost-config.php 6. 登录 Admin Panel 7. 按升级向导执行数据库迁移 8. 测试创建、收取、回复和关闭工单 9. 删除 setup 目录 10. 重新启用 Helpdesk
官方建议升级或迁移前同时备份数据库和网站文件,并在操作期间暂时将系统离线。(osTicket 文档)
3. 安全建议
至少实施:
强制 HTTPS 及时安装安全版本 删除 setup 目录 限制 ost-config.php 权限 管理员和客服启用 2FA 限制管理员数量 删除权限只给主管 附件要求登录后访问 定期检查 System Logs 定期测试备份恢复
管理员可以在:
Admin Panel → Settings → Agents → Require agents to turn on 2FA
强制客服配置多因素认证。(osTicket 文档)
十五、常见故障排查
邮件收不到
依次检查:
Email Fetching 是否启用 Remote Mailbox 的 IMAP 主机、端口和加密 OAuth2 Token 是否失效 api/cron.php 是否实际运行 服务器是否安装 PHP IMAP 扩展 邮件是否进入其他文件夹 Dashboard → System Logs 邮件服务器日志
最常见的问题是只开启了 Email Fetching,却没有配置 Cron。(osTicket 文档)
邮件发不出去
检查:
SMTP 主机和端口 SSL/TLS 方式 用户名是否为完整邮箱 OAuth2 或密码是否有效 防火墙是否允许出站连接 发件地址是否被邮件服务商授权 Emails → Diagnostics PHP 或 Web 服务器错误日志
用户回复后生成了新工单
常见原因:
用户修改了邮件主题或删除了工单编号 回复到了未被 osTicket 收取的邮箱 原工单状态被设为不可重新打开 邮件过滤器改变了路由 邮件线程识别信息被网关清除
页面空白或 500 错误
检查:
PHP 版本 缺失的 PHP 扩展 目录所有者和权限 Web 服务器 error.log PHP error.log Admin Panel → Dashboard → System Logs
排错期间可以临时开启 PHP 错误显示,但处理完毕后必须关闭,避免泄露路径、数据库或程序信息。官方安装文档也建议结合系统日志、Web 日志和邮件服务器日志排查。(osTicket 文档)
十六、推荐的最小可用配置
初次上线可以先完成这一套:
部门: IT 服务台、财务、人事 角色: 一线客服、主管 Help Topics: 账号问题、电脑故障、网络问题、软件申请、财务咨询、人事咨询 状态: Open、处理中、等待用户、已解决、Closed SLA: 紧急 2 小时、高 8 小时、普通 24 小时、低 72 小时 工作时间: 周一至周五 09:00–18:00 邮箱: support@、finance@、hr@ 自动规则: 按 Help Topic 分部门 VIP 用户自动提高优先级 发票关键词自动进入财务 垃圾邮箱直接拒绝 知识库: 密码重置、VPN、打印机、软件安装
上线前至少完整测试一次:
网页提交工单 邮件创建工单 自动回复 客服回复 用户邮件追问 内部备注 部门转移 任务创建 SLA 超时 工单关闭 用户重新打开 搜索和导出 备份与恢复