前言
✨✨✨ 如果您对这篇文章感兴趣,可以点击【导航页 - 访客必读】一文囊括主页所有优质博客 查看更多优质内容,希望可以帮您解决更多问题~。 ✨✨✨
本文旨在简单配置hustoj,适合个人练习使用(非Python选手)。
Web端、数据库、判题机全部被打包在了同一个镜像,所以拓展性比较差,不建议用于大规模的生产环境,可能会有未知的魔法问题。
注意:若采用Docker安装,则Python判题会出错。 因为Python判题需要在judged内部调用docker,目前不支持docker in docker的方式运行。
对于不同的系统,本文使用到的对应命令可能不同,需要大家结合具体的系统来进行操作,博客有任何错误或者大家有任何问题,都可以直接在评论区留言~
本篇文章以Ubuntu22.04为例,采用Docker一键配置的方式,如果您需要其他系统或者其他配置方式的教程,可以私信留言,我将尽可能为您更新相应教程!
如果我的博客成功解决了您的问题,烦请一件三连 (*^▽^*),不胜感激!
详细步骤
1.配置Docker(如已配置请忽略)
Ubuntu系统请参考此教程。
CentOS系统请参考此教程。
其他系统请综合参考上述两个教程。
2.Docker换源(如可以正常拉取镜像请忽略)
目前由于政策的加强,大部分常见的镜像源已经无法使用。
如果没办法正常拉取镜像的话,请参考此教程进行换源。
3.配置hustoj
sudo docker run -d \
--name hustoj \
-p [容器对外开放端口]:80 \
-v ~/volume:/volume \
registry.gitlab.com/mgdream/hustoj
- 1
- 2
- 3
- 4
- 5
- 通过访问
http://127.0.0.1:[容器对外开放端口]/
来访问hustoj前端,将[容器对外开放端口]
设置为80 即可实现通过访问服务器ip直接访问到hustoj前端。
即上述第3行修改为:-p 80:80 \
若容器尚未开启,可以采取下列命令开启容器:
sudo docker start hustoj
- 1
4. 测试
- 更改语言
- 注册账号
与其他OJ不同,hustoj没有给出初始的管理员账号,需要我们自己注册。
默认第一个注册的用户获得管理员权限。
- 导入题目测试
进入管理后台,选择 问题-导入
,导入好测试题目,
- 编译测试
根据常见问答里第1000题的的各种语言代码进行测试即可。
查看是否有编译错误,如下图:
再次强调一遍,若采用Docker安装,则Python判题会出错。
- 修改配置以查看判题详情(可选)
如果出现如下图,则需要修改配置以查看判题详情
修改db_info.inc.php
文件,设置 $OJ_SHOW_DIFF=true
打开文件reinfo.php
在27行和60行有两处详细注释,根据注释进行调整。
- 进入容器
sudo docker exec -it hustoj bash
- 1
- 修改
db_info.inc.php
文件
如果不清楚某个文件的路径,可以通过 find -name xxx
来查找。
nano ./volume/web/include/db_info.inc.php
- 1
如果没有nano
编辑器,可以通过apt install
安装。
设置 $OJ_SHOW_DIFF=true
。
- 修改
reinfo.php
文件
nano ./volume/web/reinfo.php
- 1
根据自己的需求和第27行和60行的注意进行修改即可。
如果打开发现中文为乱码,可以参考此教程进行修改。
- 退出容器
exit
- 1
- 重启容器
sudo docker restart hustoj
- 1
常见问题及对应解决方案
目前还没遇到过问题…
欢迎大家将自己遇到的问题回复在评论区中,我会积极解答并将其补充到博客中,大家共同进步!
补充
1.Python判题为什么会失败?
详情可以看开发者的回答。
2.各种各样的定制化需求
可以参考官方常见问答。
评论记录:
回复评论: