ECNU Online Judge 搭建
一、系统介绍
eoj是基于python框架Django开发的一款在线程序评测系统。
二、EOJ环境配置
1、 安装Django:
默认情况下,Ubuntu 18.04附带Python 3.6。 您可以通过键入以下内容来验证系统上是否安装了Python 3:
1 | python3 -V |
安装Django:1
pip3 install django
2、eoj前端配置
克隆eoj:
1 | git clone https://github.com/ultmaster/eoj3.git |
进入eoj3目录安装依赖:
1 | pip3 install -r "requirements.txt" |
如果中途出错,执行:
1 | sudo apt-get install libmysqld-dev |
执行完之后再重新获取依赖即可
接下来我们需要配置一下JS环境
进入static文件夹:
1 | cd static |
安装npm和js:
1 | apt install npm |
此时前端还差一个css文件,我们从ECNUOJ官网就可以获取到。
把这个名为app.min.css的文件保存到eoj3/static/css下
这样我们的前端就算是搭建完毕了。
3、Django配置
我们需要导入数据库,执行
1 | python manage.py migrate |
创建超级管理员:
1 | python manage.py createsuperuser |
安装redis-server:
1 | apt-get install redis-server |
这样我们运行80端口:
1 | python3 manage.py runserver 0.0.0.0:80 |
输入服务器ip即可访问.但是现在还是无法判题,因为我们没有安装ejudge,
ejudge可以看作是一台server,用来进行判题.
4、ejudge配置
从github上把ejudge克隆下来1
git clone https://github.com/ultmaster/ejudge.git
安装docker:
1 | apt install docker.io |
执行:
1 | systemctl start docker |
查看是否成功:
1 | docker -v |
进入ejudge执行:
1 | ssh init.sh |
在ejudge下执行:
1 | docker build . |
等待…等待…(如果失败了多试几次)
检查镜像是否创建成功:
1 | docker images |
运行容器:
1 | sudo docker run -d -p 5000:5000 -v /path/to/your/run/:/ejudge/run <imageName> |
5、后台配置:
用超级管理员登陆账户,进入后台,点击server
将server命名为ejudge
ip设置为:127.0.0.1
enable server.
最后回到eoj3目录下执行:
1 | python3 manage.py runserver 0.0.0.0:80 & python3 manage.py qcluster |
这样EOJ就搭建完成了。
如果普通用户显示eoj is closed,进入util目录,将site_settings.py的
1 | def force_closed(): |
改为
1 | def force_closed(): |
大功告成!!