# 前言
提到在线评测系统(Online Judge),很多人会想到用C++、Java 或 Python 等语言开发。但你可能不知道,PHP 同样能够构建功能强大的在线评测系统!今天我们就来聊聊基于 PHP 的 HUSTOJ ——一个成熟稳定的开源在线评测系统
## HUSTOJ
hustoj 由 华中科技大学(实际上只有 zhblue 一个人和喜欢 pr 的网友) 开发,前后端完全使用 php 开发,判题机是 docker ,不用担心安全问题,这点为 oi 教学系统提供了很好的解决方案
主要优势:
- 开源免费
- 允许商用(只需要开放源代码)
- 海量题库(约 $x(x \geq 5 \times 10^3)$ 道题目可以下载)
- 支持多种语言提交
- 社区活跃
- 易于二开(直接修改文件即可,不需要重新 build)
## HUSTOJ 相关资料
QQ 群:`23361372`
wiki:[代码的那些事 | 程序员回忆录](http://www.hustoj.com/)
github:[zhblue/hustoj: Popular Simple Open Source Online Judge based on PHP/C++/MySQL/Linux for ACM/ICPC and NOIP training, with easy installation. 简单实用的开源OJ系统](https://github.com/zhblue/hustoj)
题库:[TK题库](http://tk.hustoj.com/)
# 正文
我们如何部署如此强势的 online judge 呢?
我们可以使用同样强势的的 [雨云](https://www.rainyun.com/DHEnry_) 和 [宝塔面板](https://bt.cn/)
温馨提示:1-1 也可以部署 hustoj
购买完服务器后,需要安装宝塔面板
操作系统选择 ubuntu 22.04
## 开始部署
### 创建数据库
登录上你的 宝塔面板,左侧数据库,创建数据库,数据库名称 jol ,进行创建

### 运行安装脚本
先登录上你的 宝塔面板 ,进入左侧终端,执行两条命令
```bash
wget http://dl.hustoj.com/install-ubuntu22.04-bt.sh # 拉取安装脚本
bash install-ubuntu22.04-bt.sh # 运行安装脚本
```
这时,他会要求你输入数据库用户名和密码,请依次键入你创建数据库的时候的用户名和密码

随后便开始安装了...
期间可能会多次需要你按下 enter 键
> 请不要使用 `Windows + V` 剪切板功能
> 请保持 bt 窗口活跃
> 安装速度结合网络宽带而定
需要按 enter 大杂烩:

### 创建站点并配置
宝塔左边网站,php,创建网站,域名`http://:`,根目录`/home/judge/src/web`

然后设置这个,左边网站目录,关闭放跨站攻击

然后,左边软件商店,搜索 php ,设置安装的 php,左边禁用函数,取消 putenv 函数的禁用

然后,使用浏览器访问你的 oj ,恭喜你,访问成功!

## 简单使用 HUSTOJ
### 注册管理员账户
右上角注册,用户名一定要写`admin`,其他随意,注册即可
### 添加一道题目
后台管理 URL 是 `http://:/admin/`
左侧【问题-管理】【问题-添加】
> ```html
>
>
> ```
>
> 这是 markdown 的标记,题面需要在里面写,支持 latex、katex
添加即可
## 维护
### 系统配置
`/home/judge/src/web/include/db_info.inc.php` 有注释
### 其他你可能需要知道的东西
`/home/judge/src/web` 是站点文件

---
感谢阅读
最后修改:2026 年 04 月 28 日
©
此处评论已关闭