【介绍】
流行的OJ系统,跨平台、易安装、有题库。
官网:https://github.com/zhblue/hustoj
知乎:https://www.zhihu.com/people/zhang-hao-bin-2
参考:https://zhblue.github.io/hustoj/#/README
参考:https://zhblue.github.io/hustoj/#/Install
参考:https://github.com/zhblue/hustoj/tree/master/wiki
参考:https://blog.csdn.net/chaoshenyutou/article/details/18950909
参考:https://cloud.tencent.com/developer/article/1545184?from=article.detail.1086539
【对标】
SYZOJ是由郑州市第十一中学自主研发并开源发布。
源码:https://github.com/syzoj/syzoj 一个用于算法竞赛的在线评测系统。 本项目继承自 @louchenyao 的 SYZOJ,目前由 LibreOJ 维护。
SYZOJ是我的学长chenyao开发的,基于python flask的开源评测系统,大约是在14年底,SYZOJ最初版本已经在内网运行,据说当时上传了usaco training的所有习题,不过那个版本还非常简陋,几乎只能看题交题,次年年初chenyao重写了整个项目,并且购置了阿里云服务器与域名,备案后SYZOJ正式投入使用,所以算下来,SYZOJ马上要过四岁生日啦!
参考:https://www.zhihu.com/question/268081438
【魔改】
https://github.com/Pigeon-Developer
【部署】
基于 Ubuntu 22.04 安装:
wget http://dl.hustoj.com/install-ubuntu22.04.sh && sudo bash install-ubuntu22.04.sh
安装完毕,输出:
Successfully built 05996e2fc023 Successfully tagged hustoj:latest install-ubuntu20.04.sh: line 165: cls: command not found Remember your database account for HUST Online Judge: username:debian-sys-maint password:aY7Hmv5G3a6LUiPq DO NOT POST THESE INFORMATION ON ANY PUBLIC CHANNEL! Register a user as 'admin' on http://127.0.0.1/ 打开http://127.0.0.1/ 注册用户admin,获得管理员权限。 不要在QQ群或其他地方公开发送以上信息,否则可能导致系统安全受到威胁。
现在即可使用 IP 访问。
如将域名解析到 IP ,可实现 www.domain.name 访问。
【配置】
需求:全局 https 访问
参考:https://amon.org/hustoj-https
需求:导入题目 fps
参考:https://amon.org/hustoj-fps
需求:支持 Pascal 判题
参考:https://amon.org/hustoj-pascal
需求:支持 Java 判题
参考:https://amon.org/hustoj-java
需求:用户仅能使用QQ邮箱注册
原程序让用户以QQ头像为自定义头像。
文件路径:/home/judge/src/web/template/syzoj/userinfo.php
可见:// 如果email填写的是qq邮箱,取QQ头像显示
测试后显示QQ头像正常。只需要约定大家只能使用QQ邮箱得了。
需求:安装 phpmyadmin 在线管理数据库
参考:https://amon.org/phpmyadmin
chown -R www-data:root /home/judge/src/web/phpmyadmin
访问:https://domain.name/phpmyadmin
使用 hustoj 部署完之后输出的数据库用户名和密码登录。
username:debian-sys-maint password:aJ8Qmv5G3a6LUiPq
登录进去后,查看 jol 数据库,即为 hustoj 所用。
需求:修改 favicon.ico
文件路径:/home/judge/src/web/favicon.ico
用新的 favicon.ico 直接覆盖。
需求:禁止注册新用户
文件路径:/home/judge/src/web/include/db_info.inc.php
static $OJ_REGISTER=true; //允许注册新用户 static $OJ_REG_NEED_CONFIRM=false; //新注册用户需要审核 static $OJ_NEED_LOGIN=false; //需要登录才能访问 static $OJ_LONG_LOGIN=false; //启用长时间登录信息保留 static $OJ_KEEP_TIME="30"; //登录Cookie有效时间(单位:天(day),仅在上一行为true时生效)
需求:修改网站名称
文件路径:/home/judge/src/web/include/db_info.inc.php
static $OJ_NAME="Site Name"; //左上角显示的系统名称