HUSTOJ
流行的OJ系统,跨平台、易安装、有题库、二次开发门槛低。
一句话安装 --
curl -fsSL http://dl.hustoj.com/install.sh | bash
常见问题请先查阅 -- FAQ常见问答
目录
基于 Ubuntu 24.04 安装 新手首选, 各类软件最新,最容易操作成功
如果您喜欢在线聊天,希望问题获得及时反馈,请加官方QQ群 23361372
如果需要付费服务,如:远程协助、服务器抢救、相关技术咨询,可加微信号:hustoj
如有远程协助需求,请提前安装向日葵,或准备好公网可连接的SSH账号。
自带的5种模板演示
syzoj主题 added by@renbaoshuo
mdui主题 added by@renbaoshuo
修改db_info.inc.php[默认位置/home/judge/src/web/include]中$OJ_TEMPLATE的值,即可使用上述模板。
版权说明
HUSTOJ is an GPL Free Software.
HUSTOJ 是采用 GPL 的自由软件。(仅限原创部分代码,其中使用了其他开源项目的组件,请遵循原组件的协议。)
感谢下述及其他被使用到的开源代码项目贡献者,来自这些项目的代码及衍生代码遵循其原有开源协议,不受本项目的GPL授权影响。
- masteroj uoj loj syzoj zoj qduoj openJudger scratch-run PHPMailer
- linux apache nginx php mysql mariadb memcached sqlite
- bootstrap kindeditor ACEeditor blockly codemirror katex phpfilemanager mdui
- sim gcc clang openjdk freepascal mono docker SyntaxHighlighter marked.js
注意:基于本项目源码从事科研、论文、系统开发,请在文中或系统中表明来自于本项目的内容和创意。
论文请引用参考文献 基于开放式云平台的开源在线评测系统设计与实现
如果打算进行二次开发, Wiki 和这份FAQ 可能有帮助。
上面这是建议,不是强制要求。
GPLv2 唯一实质性要求的是,当你基于本项目进行二次开发,请在分发时提供源代码,这里的分发,指您将二次开发的产品安装在您“客户”的服务器上使用,这时需要一并提供您修改过的源码,给您的“客户”(不是我,不是公开在网上)并在其中包含GPLv2的协议,并明示GPLv2的授权。这里的“客户”可以是收费的,也可以是免费的。仅提供SaaS模式的服务,让其他人在您自己的服务器上使用本软件的衍生品,并不构成这里的分发。因此,您可以部署本系统的二次开发品作为SaaS服务出租,而无需公开源码,也无需在前端页面标注,甚至可以去除原先页脚的版权信息而不破坏授权,只要您不将本系统的衍生物安装到客户的服务器上,或提供给他们二进制编译后或加密后的可运行程序使用,就不算分发。另外,如果您的软件或系统通过数据库或HTTP请求调用API来访问本系统的功能,不受本系统GPL授权的影响。
简单总结,二次开发时页脚的标注可以删除,Web目录下的GPLv2,在分发时必须保留。
如果您是完全重新开发一套Web界面,只在数据库和API层面与本品耦合,GPLv2不会对您所开发的Web部分代码构成感染。
如果您在淘宝购买了本系统的二次开发产品,请注意索取未加密的源代码,如商家拒绝提供,可以找店小二投诉,要求退款。
有关安装、使用问题请先查阅 FAQ常见问答 和 文档 或使用搜索引擎。
如果这个项目对你有用,请:
- 挥动鼠标,右上角给个
Star! - 保留网站页脚的二维码
- 访问 tk题库 ,充值下载题目
- 向同学同事推荐这个项目
- 每天扫一扫本页底部的支付宝红包
- 在您的论文参考文献中写出本项目的网址
更新日志
2026年
日期 | 类型 | 更新内容 | 图
------- | :--: | :--: | :-------
10-18 | 更新 | 增加NOI Linux 2.0 桌面模拟器,支持模拟看试题要求、创建目录结构、创建源码文件,模拟体验Geany和CodeBlockly编译运行程序,体验简单Linux命令行。|
05-17 | 更新 | 支持基于testlib.h的交互器判题| 感谢Firefly提供的交互器例子。
05-15 | 更新 | 下载测试数据(download.php)和运行错误、错误答案的解析(reinfo.php),升级为收费(积分Coin)服务。|用 🪙 标识
05-12 | 更新 | 用户做题可得积分(金币),管理员可给用户积分奖励,积分可由管理员进行消费抵扣(线下奖励),用户自行二次开发可增加积分消费功能。|
01-29 | 更新 | 基于人工智能的题目分类标签生成 | !QQ20260129-151030
01-22 | 更新 | 修改AI调用为异步模式运行,不再影响php-fpm的进程池。|在db_info.inc.php中增加变量 $OJ_AI_API_URL=”aiapi/qwen.php”; //根据所需选择aiapi目录中的某个文件。配置$OJ_AI_API_URL所指向的文件,主要是提供其中的$apiKey 的值,其他内容可根据自己需求修改调整。
01-01 | 更新 | 允许AI辅助造题,纯鼠标点击的造题模式。|
2025年
日期 | 类型 | 更新内容 | 图
------- | :--: | :--: | :-------
12-30 | 更新 | 增加了新的人工智能造数据、标程工具 |
12-09 | 更新 | 增加一个命令行配置工具setup.sh |
12-05 | 更新 | 增加比赛的AI辅助开关 |
11-16 | 更新 | 增加aiapi目录,放入千问、Bigmodel、腾讯元宝、腾讯混元、huggingface 等模型接口文件,db_info.inc.php中的$QWEN_API_KEY去掉,换成$OJ_AI_API_URL来指定加载加载AI答疑文件路径。
11-05 | 更新 | 接入Qwen3-coder-480b-a35b-instruct API , 进一步解析编译错误和运行错误。 (此功能需要阿里千问的付费服务)|
在qwen.php中配置 $apiKey后可以使用。
10-26 | 更新 | 增加比赛只按最后一次提交记分可选项,之前的提交记0分,算做测试运行。|
10-24 | 更新 | LiveCD基础发行版更新到Ubuntu24.04,podman替代docker作为判题容器。
06-08 | 更新 | 在用户信息页增加参赛信息统计,以帮助部分培训机构满足“消课”信息的快速确认。|
05-24 | 更新 | 增加检测是否首次AC的触发器,让本月之星排名更合理。|
05-17 | 更新 | 用Wasm版本的SQLite在浏览器中执行SQL语言的测试运行,分散服务器测试运行的压力。
05-06 | 补丁 | 修复markdown中的选择题选项控件。
05-05 | 更新 | 比赛禁止补题选项。|!79f8dff90b22d13e8a1fd5f09fc4e96e
04-25 | 更新 | PHP8.4 兼容。
04-03 | 更新 | 支持截屏粘贴转为上传文件。
04-02 | 更新 | 支持文件管理器里复制图片文件,在编辑器中粘贴。支持粘贴pdf文件,自动转换为iframe直接显示。|
04-01 | 更新 | 支持一次上传多个文件。|!image
03-16 | 补丁 | 修复个人限时赛中露一手的工作异常。
03-08 | 补丁 | 修订对比和一些细节,祝天下妈妈们身体健康!
03-02 | 更新 | 初步支持龙芯架构loongarch。
01-23 | 更新 | 优化用户列表的显示。 | !image
01-20 | 更新 | 增加比赛的禁止选项。| !image
01-07 | 更新 | 增加矩阵转置按钮。| !image
01-06 | 更新 | 增加全局题单班组(group_name)统计显示页group_total.php 。 | !image
01-04 | 更新 | 增加题单的班组(group_name)统计显示页group_statistics.php 。 | !image
01-02 | 更新 | 允许新闻用importance字段排序,允许双击修改importance。| !image
01-01 | 预定 | 新年好!| !image
2022年
日期 | 类型 | 更新内容 ------- | :--: | :------- 12-14 | 更新 | 手机界面优化,单IP登录限制。 12-06 | 致敬 | 长者一路走好! 11-30 | 更新 | syzoj皮肤增加了利用localStorage自动保存临时代码的功能。 11-18 | 更新 | 管理后台帮助页首行增加服务器状态。 11-16 | 补丁 | 给Docker容器中的/usr/include/c++/9/iostream打补丁,禁用endl的cout.flush()操作,提高cout性能。 11-15 | 补丁 | 修复新版本golang报错Urgent I/O condition和 Forbidden system call:35 [35] 11-12 | 补丁 | 修补中间的特定数量题目以后,大序号的题目不显示的问题。 11-06 | 更新 | 增加简单的导入HydroOJ打包zip(yaml+目录)格式题目的功能,目前不支持图片等高级特性,老版本需要自行安装php-yaml(sudo apt install php-yaml)。 10-19 | 更新 | 将syzoj首页中的排名更换为标题为HelloWorld!的新闻内容,可在db_info.inc.php中配置$OJ_INDEX_NEWS_TITLE的值来选择要在首页显示的新闻。 10-18 | 更新 | 增加以csv格式导入用户列表的功能,如有中文内容,需以UTF-8编码。 10-12 | 更新 | 增加简单的导入QDUOJ打包zip(json+目录)格式题目的功能,目前不支持图片等高级特性。 10-08 | 更新 | 增加$OJ_MARKDOWN开关,实验性支持markdown语法,用[md] [/md]在源码模式嵌入题面和新闻,也支持<div class='md' ></div> 10-05 | 更新 | 允许在题面、新闻中上传更多的文件类型。 09-19 | 更新 | 优化了露一手功能的页面布局 08-31 | 补丁 | QQ邮箱作为发件邮箱,不能发送找回密码邮件。 08-30 | 补丁 | 修复管理员前台不能翻页到最后几页,看不全题目。 08-29 | 补丁 | docker镜像切换阿里云后自动重新加载。 08-14 | 更新 | spj扩展了2=RawTextJudge,用于选择填空题的判题。 07-18 | 更新 | 存档很少人用的blockly目录到blockly.tar.gz, 未来从web目录中删除,留一个web下载链接在db_info.inc.php供需要的用户下载。 07-14 | 补丁 | 修复了论坛无贴打不开的问题。 07-10 | 补丁 | 修复了php8.1(Ubuntu22.04) 不能上传图片和不能压缩文件的问题。 06-05 | 更新 | 新增了HelloWorld公告,Cobol,Github的自动化集成测试增加判题测试,基于docker/Ubuntu22.04. 05-17 | 更新 | 对Ubuntu22.04及PHP8.1进行了针对性修复。 05-09 | 更新 | 增加了ubuntu20.04下的宝塔安装脚本与配套说明。 01-15 | 更新 | 测试数据文件管理器中增加生成.out文件和.ans文件批量改名功能。 01-12 | 补丁 | 修复nodejs,增加部分系统调用。 01-10 | 更新 | 移除部分老式代码,为php8.1进行兼容性调整,增加适用于Ubuntu22.04lts的安装脚本。 01-03 | 补丁 | 修复图片上传路径的问题。 01-01 | 补丁 | 修复Docker中-lm不能加载sqrt函数的问题。 1月 | 喜讯 | star过2.5k!
2021年
日期 | 类型 | 更新内容
------- | :--: | :-------
12-31 | 更新 | 增加UOS20安装脚本
12-21 | 更新 | 让题单plist元素可以收缩,标题链接打开新窗口。
12-18 | 更新 | 给admin下的problem_list等页增加汉化
12-16 | 补丁 | 给龙芯补充新的系统调用
10-17 | 更新 | 给默认syzoj添加discuss
10-16 | 更新 | 设置默认模板为syzoj
10-15 | 更新 | syzoj模板国际化字符串替换
10-12 | 更新 | SaaS模式实例 MyOJ 上线 http://my.hustoj.com/
09-30 | 更新 | 增加JudgeHub程序,为SaaS建立技术平台。
09-28 | 更新 | 增加友善级别$OJ_FRENDLY_LEVEL,辅助初级用户快速配置系统。
09-03 | 更新 | 增加管理员双击修改用户昵称的功能。
09-01 | 更新 | 新增一个OJ_AUTO_RESULT=4,让机器判断结果AC可以被设定为4或者14,4代表正确,14代表机器判断通过,等待人工复核。让拥有HTTP_JUDGE权限的用户手工给出结果。
08-17 | 补丁 | 修复了Mathlab等多种语言在Ubuntu20.04的运行环境,对docker增加了限制参数,对运行的环境变量做了统一。
07-11 | 更新 | 增加了新闻页对BBcode的支持,并增加了[plist=1000,1001]题单名称[/plist]语法,支持在新闻页中添加题单。
07-05 | 补丁 | 修补并增强了隐藏功能中的UOJ题目摘抄功能,使用时注意频率,请勿给UOJ带来过多流量压力。
06-22 | 补丁 | 修复其他模板运行结果自动刷新的问题。
06-20 | 补丁 | 修复其他模板部分静态资源不走CDN的问题。
06-20 | 补丁 | 修复bs3部分静态资源不走CDN的问题。
06-19 | 更新 | 允许设置不参与ranklist排名的管理员列表,$OJ_RANK_HIDDEN="'admin','zhblue'";
06-18 | 更新 | 允许在docker内使用外部的judge_client判题,方便更新judge_client。judge.conf新增选项:OJ_INTERNAL_CLIENT=1
06-16 | 更新 | 允许使用"tpj"作为文件名,命名一个基于testlib.h的spj,当"tpj"文件存在时,优先用tpj进行特判。
06-12 | 更新 | gcc/g++ 优化级别可配置,默认-O2,允许用OJ_CC_OPT进行覆盖。
06-06 | 更新 | Ubuntu20.04的机器上,让C的标准升级为C17,允许用OJ_CC_STD进行覆盖。
06-05 | 更新 | Ubuntu20.04的机器上,让C++的标准升级为C++17,允许用OJ_CPP_STD进行覆盖。
05-02 | 补丁 | 禁止查看进行中的比赛所用的题目在比赛之前提交的源码,避免训练中偷懒复制老代码。
04-08 | 更新 | 增加可选的docker作为judge_client外部容器,以增强安全性。参考用法
03-26 | 更新 | 增加权限类型VIP,拥有VIP权限的账户,可以参加所有标题含[VIP]标记的私有比赛。
03-08 | 补丁 | 修复在Ubuntu20.04上运行sqlite3
02-06 | 更新 | 新的模板 mdui 基本可用,如需启用新模板,只需修改 /home/judge/src/web/include/db_info.inc.php ,设置 $OJ_TEMPLATE="mdui"; 即可。如需内网使用,请在 /home/judge/src/web/include/db_info.inc.php 末尾添加 $MDUI_OFFLINE=true; 即可。 (Author: @renbaoshuo)
01-01 | 更新 | 新的模板 syzoj 基本可用,如需启用新模板,只需修改 /home/judge/src/web/include/db_info.inc.php ,设置 $OJ_TEMPLATE="syzoj"; 即可。 (Author: @renbaoshuo)
2020年
日期 | 类型 | 更新内容
----- | :--: | :-------
12-30 | 更新 | 新版 wiki 已经迁移至本仓库,可通过 /home/judge/src/web/include/db_info.inc.php,设置 OJ_COOKIE_LOGIN=true;,自定义OJ_KEEP_TIME为自最后一次登陆起最长允许保持登录的时间
07-12 | 更新 | 允许在WA掉的时候,ShOW_DIFF打开的情况下,下载出错的一组测试数,zip方式打包.in/.out文件
02-10 | 更新 | 新的模板 bshark 基本可用,如需启用新模板,只需修改 /home/judge/src/web/include/db_info.inc.php ,设置 $OJ_TEMPLATE="bshark";
01-31 | 更新 | @melongist 增加了很多页面美化。
01-27 | 更新 | 题目限时增强为浮点型,3位小数精度,即标称毫秒(ms)。
01-26 | 更新 | 允许为每个Web添加多个UDP通知对象,每个判题服务器允许使用不同的UDP端口监听消息。阿里云+腾讯云测试通过。
01-23 | 更新 | 修订了Moodle集成代码,实现HUSTOJ给moodle系统作业自动判分。
01-20 | 更新 | 删除 noip 模式比赛的多余提交记录,允许自定义 noip 关键词,增加 privilege 表 user_id 索引。
2019年
日期 | 类型 | 更新内容
----- | :--: | :-------
12-19 | 更新 | 增加了 judge.conf 中的注释,提供了备案号变量 $OJ_BEIAN ,对系统判题时间分辨率进行了更新优化,提高灵活度。
11-23 | 喜讯 | hustoj 在首届深度软件开发大赛中获得三等奖。
11-21 | 补丁 | 修复比赛中点击 Edit 按钮后可以选择出题人禁用的语言提交【感谢湘潭大学谢老师的报告】。
11-20 | 更新 | 在运行结果对比输出(OJ_SHOW_DIFF)中提示每个数据点的结果(AC/WA/TLE...)。
11-16 | 优化 | @muzea 开发了从 GitHub 到 Gitee 的同步机制,并部署了CI。
11-13 | 更新 | 在运行时错误(RuntimeError)中显示数据点文件名(infile)
10-30 | 更新 | 提供 $OJ_OI_MODE 开关。
10-29 | 更新 | 加强了 OI 模式下的限制,控制 Web 行为。
10-03 | 更新 | 修订测试 deepin 15.11 安装脚本
10-03 | 补丁 | 注册页面验证 csrf
09-23 | 补丁 | 修复昵称比赛中不更新问题,以及提醒官方群用户及时更新处理504超时问题。
09-21 | 补丁 | 修复部分安装脚本不能执行第二次的问题
08-06 | 更新 | 支持用UDP数据包触发判题轮询,实现Web本地judge秒判。
07-26 | 更新 | 支持华为鲲鹏服务器,aarch64,感谢深度科技公司和华为云提供鲲鹏服务器。
07-06 | 更新 | 对于标题带有 NOIP 字样的比赛,比赛结束后才能看到结果。
07-04 | 更新 | 设置 $OJ_MARK="mark" 显示得分,$OJ_MARK="percent" 显示错误率(WA)或通过率(AC),设置 $OJ_MARK="" 只显示最终结果。
06-24 | 文档 | 对项目首页进行分块标注,调整顺序和内容,增加目录。
06-12 | 更新 | 添加 Fortran 语言、Matlab(Octave),修订:比赛结束后编辑时丢失提交统计数据、修复部分RE。
05-18 | 修订 | 16.04以上版本FB显示异常。 基于OpenJudger的Windows集成便携版 浙传网盘
05-17 | 修订 | 改善ajax,减少并发量,降低web压力,提高judge轮询效率。
05-15 | 修订 | 修复了部分TLE误判为RE的情况,主要是在Ubuntu18/19 Deepin15.9/15.10 以上的版本,估计与gcc/g++有关。
05-07 | 更新 | @muzea 提供了 Debian 安装包打包(*.deb), SQLite3 ,支持龙芯3A3000(致谢江苏航天龙梦信息技术有限公司提供龙芯主机!)。
03-14 | 更新 | 主线支持 树莓派(arm) 龙芯(loongson-2f) i386 x86_64
安装说明
视频教程
Ubuntu 安装 视频中以18.04安装,不代表推荐使用18.04,推荐用最新Ubuntu LTS版本,如24.04 22.04 。
注意事项
根据你选择的发行版不同,从下面三个脚本里选一个来用。
不要相信百度来的长篇大论的所谓教程,那些都是好几年前的老皇历了,会导致不判题,不显示,不好升级等等问题。
尤其别装 Apache ,如果已经安装,请先停用或卸载,以免80端口冲突。
不要 使用 LNMP LAMP Cpanel 或其他面板程序提供的 Mysql Nginx Apache PHP 环境,安装脚本已经包含所有必须环境的安装。
腾讯云用户请 换软件源 ,增加 multiverse 。
阿里云用户请百度 阿里云 80端口
基于 Ubuntu 24.04 安装
各类公有云首选, 最容易,成功率最高,近期部署数量最多,开发者原型机,有用户使用WSL部署成功
基于 Ubuntu 26.04 安装
有问题在群中反馈,优先解决基于 Debian12 安装
支持各类虚拟机、云服务、物理机
以上三种环境都用下面的脚本
wget http://dl.hustoj.com/install.sh
sudo bash install.sh
建议服务器配置双核2G内存以上,最低配置1核1G内存
脚本运行完成直接浏览器输入ip地址即可访问,如不能打开请检查访问策略、防火墙设置是否打开80端口。
提醒:阿里云的 Ubuntu 20.04 预装了 apparmor ,小概率可能会造成 systemd 和 umount 进程卡CPU 100%
可能的解决方案1:安装docker(运行judge_client目录下的docker.sh)并启用OJ_USE_DOCKER=1
或2:卸载阿里云盾。**
内网安装
军政网、教育网等,限制服务器访问外网的用户,请先安装标准版Ubuntu24.04 LTS Desktop,然后下载
http://dl.hustoj.com/hustoj-offline.tar.gz
用U盘等方式复制到服务器中。
tar xzf hustoj-offline.tar.gz
cd hustoj-offline
sudo bash install.sh
基于 Ubuntu 22.04+宝塔 安装
先看宝塔系统安装HUSTOJ指南v0.4.docxwget http://dl.hustoj.com/install-ubuntu-bt.sh
sudo bash install-ubuntu-bt.sh
Ubuntu 更换软件源
下列两个脚本可以二选一,对于使用腾讯云镜像和Ubuntu 原版镜像的用户,推荐使用脚本二。
+ 脚本一
wget http://dl.hustoj.com/sources.list.sh
sudo bash sources.list.sh
+ 脚本二
wget http://dl.hustoj.com/update-sources-ubuntu.sh
sudo bash update-sources-ubuntu.sh
基于 Deepin 20+ 安装
国内桌面用户 Deepin 20+ (内置QQ、微信、WPS方便出题人本地测试,最新20测试通过)
wget http://dl.hustoj.com/install-deepin20+.sh
sudo bash install-deepin20+.sh
基于 UOS 20+ 安装
国内桌面用户 UOS 20+ (内置QQ、微信、WPS方便出题人本地测试,最新20测试通过)
wget http://dl.hustoj.com/install-uos20.sh
sudo bash install-uos20.sh
基于 CentOS 安装 CentOS发行策略改变,未来前景不确定,不推荐
假如你不得已非要用centos7 (有的语言可能不支持,但是某些机架式服务器的Raid卡Ubuntu不认只能装CentOS),可以用下面脚本快速安装OJ:
wget https://raw.githubusercontent.com/zhblue/hustoj/master/trunk/install/install-centos7.sh
sudo bash install-centos7.sh
REDHAT / CentOS 用户请浏览
关于Docker 请移步
Docker方式的安装基于其他发行版安装
其他的发行版,如Debian10+(Debian10/11) 树莓派的 raspbian8/9 , ubuntu14.04的安装脚本在 install 目录可以找到,但是可能存在少量细节不完善,安装后需要部分手工修复调整。
树莓派用户请用 rpi 分支源码(实验性质)手工搭建 web ,并编译安装 core 目录下的 judged 和 judge_client 。
LiveCD下载安装
家宽下载 Linux不熟悉的用户、内网用户、无网用户无法使用标准版Ubuntu安装时可以使用。
HUSTOJ_LiveCD(发送"livecd"到微信公众号 onlinejudge ,获得百度云下载链接)
使用说明见iso中README,也可以参考LiveCD简介
Linux新手请看鸟哥的私房菜
建好系统需要题目,请访问TK题库 和 freeeproblemset项目
装后须知
常见问题自动应答微信公众号: hustoj

关注后回复: 新装系统、升级、目录等关键词,系统会自动回复相关帮助。
有问题请先查阅 FAQ常见问答 和 Wiki使用技巧 或使用搜索引擎。
安装完成,用admin作为用户名注册一个用户,自动成为管理员。
大部分功能和选项的开关和参数调整都在配置文件中,安装后几个重要配置文件的位置如下:
路径 | 内容
----------------------------------------------------------------------------------- | ----------------------------
/home/judge/etc/judge.conf | 判题 judged judge_client
/home/judge/src/web/include/db_info.inc.php | Web
/etc/php5/fpm/php.ini 或 /etc/php7.0/fpm/php.ini 或 /etc/php.ini (in Centos7) | php
/etc/nginx/sites-enabled/default 或 /etc/nginx/nginx.conf (in Centos7) | nginx
如果用户量比较大,报 50x 错误,可能需要修改 /etc/nginx/nginx.conf 中的设置:
worker_processes 8; #其中数字8可以取CPU核心数的整数倍。
events {
worker_connections 2048;
multi_accept on;
}
如果遇到比赛人数多,比赛排名 xls 文件无法下载,请修改 /etc/nginx/sites-enabled/default ,在 fastcgi_pass 一行的后面增加
fastcgi_buffer_size 128k;
fastcgi_buffers 32 32k;
保存后,重启 nginx
性能测试
可以导入这个FPS文件 等待判题完成。
!fdb2ade0dbba910e77ef31543aff7946
最后全部判完,这个AWT越小,说明判题速度越快,大致估算一下用7200去除这个值,就是服务器能承载的比赛人数。
备份
脚本安装的用户,可以使用 install 目录中的 bak.sh进行备份。
sudo bash /home/judge/src/install/bak.sh
备份后的数据在 /var/backups/ 目录下, 命名格式为 hustoj_%Y%m%d.tar.bz2。
百度学习crontab的用法后,可以使用 sudo crontab -e 定制自动备份计划,部分安装脚本中包含了自动备份,但可能需要运行上面的语句一次来激活。
迁移到CentOS
如果你需要进行跨系统迁移(如从 Ubuntu 迁移到 CentOS ),可以尝试使用下面的脚本backup+.sh进行备份, 对应的*.tar.gz,备份的文件需要用restore+.sh还原。sudo bash /home/judge/src/install/backup+.sh #备份后的归档在 /home/judge/backup 命名格式为 +%Y-%m-%d-%H-%M-%S.tar.gz
迁移
首先在新服务器上做全新安装和测试,没有问题后,再迁移数据。
将你需要迁移的归档复制到目标系统的/home/judge/src/install目录下,执行下面的脚本进行恢复( 脚本的第一个参数为恢复的目标归档,20221026 指你实际复制过来的文件名中的日期数字)。
sudo su
cd /home/judge/src/install/
bash restore.sh hustoj_20221026.tar.bz2
脚本的第一个参数为恢复的目标归档,如果没有参数则默认为按名字排序后字典序最大的归档
*如果是backup+.sh备份的.tar.gz文件,用restore+.sh还原。
sudo su
cd /home/judge/src/install/
bash restore+.sh 备份文件的文件名
更新升级
脚本安装的用户,可以使用 install 目录中的 fixing.sh 进行更新升级。
sudo bash /home/judge/src/install/fixing.sh
升级脚本执行后,可能需要登陆web端管理后台,执行一次更新数据库。
- hustoj开源版的所有历史版本,只要没有对数据库结构进行改动,都可以无损升级到最新版本,包括10年以上历史的早期版本。
- 更新后,原来系统的目录会移动到 old.日期 目录里。
- 如果老系统更新有疑问,随时加官方群咨询群主。
修复
自己不小心改坏了 web 代码,可以使用 install 目录中的 fixing.sh 进行系统修复。
sudo bash /home/judge/src/install/fixing.sh
支持捐助、加入社区
使用上需要帮助,请加用户交流 QQ 群 23361372 ,验证问题答案:【学校、公司、机构】姓名。
群共享有题库、安装盘、文档 ,群内可以讨论、答疑 。 新加群,请改群名片,5分钟后可以发言。
群内可以探讨技术,不能攻击、侮辱他人。 请尊重开源软件开发者的辛苦劳动,出言不逊者将被踢出。
您可以用这几种方式支援本项目:
1、领取并使用支付宝红包
2、在 TK题库 充值下载题目
3、右上角点击Star,给本项目加星
4、保留您安装使用的系统中页脚的公众号和红包二维码
5、在您的论文中引用本项目的网址
6、向其他老师同学推荐本项目
系统演示
后台功能
硬件需求
处理器1CPU核心, 1G内存,20G硬盘可以安装,1Mbps 网络带宽,约能满足20~50人轻度使用。
人数每增加50人,等比例增加核心数,内存,硬盘空间和网络带宽。
更严谨的请求数 QPS 测试,请参考 @muzea 的 HUSTOJ web 跑分小工具 。
免费题库
访问项目FPS下载免费例程。
访问TK题库免费专区
FQ访问谷歌代码存档版,下载老版本 FPS 共享题库。
你可能感兴趣的项目
HUSTOJ-Reborn 基于TS和Rust的AI重现版本。
HUSTOJ-Go Go重写的独立判题机