欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何自己搭建一个OJ(在线判题系统)?

程序员文章站 2022-05-20 21:07:51
...

文章目录

1. centOS7/LINUX 云服务器

我自己拿的是腾讯云的

2. 如何开一个桌面?

我准备的GNOME桌面

2.1. yum groupinstall “X Window System” #X 窗口系统

####2.2. yum groupinstall “GNOME Desktop”  #GNOME系统桌面
####2.3. startx #切换到图形化界面

3. 如何安装python?

####3.1.下载,解压,编译,安装:
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
tar -xvf Python-3.6.0.tgz
./configure --prefix=/usr/local/python3
make &&make install
####3.2.链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
###3.3.配置pip3
PATH=PATH:PATH:HOME/bin:/usr/local/python3/

###4. 如何手动安装pip3?
####4.1.执行
wget --no-check-certificate  https://pypi.python.org/packages/source/p/pip/pip-9.0.1.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb
 
tar -zxvf pip-9.0.1.tar.gz
 
cd pip-9.0.1
 
 python3 setup.py build
 
 python3 setup.py install

4.2.为什么需要pip3?

4.2.1 在命令“pip install docker-compose”中需要pip3.0及其以上

5. 如何安装Docker?

这里我安装的是Docker社区版

5.2.仓库

#####5.2.1 安装所需的软件包。yum-utils提供了yum-config-manager 效用,并device-mapper-persistent-data和lvm2由需要 devicemapper存储驱动程序。
$ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
####5.2.2 使用以下命令来设置稳定的存储库。
$ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo

5.3 安装Docker Engine-Community和containerd

####5.3.1 安装最新版本的Docker Engine-Community和containerd,或者转到下一步安装特定版本:
$ sudo yum install docker-ce docker-ce-cli containerd.io

5.4 启动Docker。

$ sudo systemctl start docker

5.5 通过运行hello-world 映像来验证是否正确安装了Docker Engine-Community 。

$ sudo docker run hello-world

5.6 参考网站

https://docs.docker.com/install/linux/docker-ce/centos/

6. 安装QingdaoU/OnlineJudgeDeploy

6.1.安装必要的依赖

6.1.1. sudo apt-get update && sudo apt-get install -y vim python-pip curl git
6.1.2. pip install docker-compose
6.1.3.问题!
6.1.3.1.这里是通过apt-get安装 而非 yum

##6.1.3.2.我直接讲"apt-get"替换为了"yum"完成了运行

6.1.3.3.我搜索的所有页面对于CentOS安装apt-get都不可行,可能是版本问题

6.2.开始安装

6.2.1.请选择磁盘空间富余的位置,运行下面的命令

git clone -b 2.0 https://github.com/QingdaoU/OnlineJudgeDeploy.git && cd OnlineJudgeDeploy

6.2.2.启动服务

docker-compose up -d

6.2.3.TIPS

根据网速情况,大约5到30分钟就可以自动搭建完成,全程无需人工干预。
等命令执行完成,然后运行 docker ps -a,当看到所有的容器的状态没有 unhealthy 或 Exited (x) xxx 就代表 OJ 已经启动成功。

6.3.尽情享用吧

6.3.1.通过浏览器访问服务器的 HTTP 80 端口或者 HTTPS 443 端口,就可以开始使用了。后台管理路径为/admin, 安装过程中自动添加的超级管理员用户名为 root,密码为 rootroot, 请务必及时修改密码。
6.3.2.不要忘记阅读文档 http://docs.onlinejudge.me/

7. 如何开linux的端口?

7.1.1.关闭与开启防火墙
  启动:systemctl start firewalld
  关闭: systemctl stop firewalld
7.1.2.查看防火墙是否开启的状态,以及开放端口的情况
systemctl status firewalld.service
firewall-cmd --list-all 
7.1.3. 通过以下命令开放http 80 端口
firewall-cmd  --add-port=80/tcp --permanent
命令末尾的--permanent表示用久有效,不加这句的话重启后刚才开放的端口就又失效了 
7.1.4 .然后重启防火墙:
sudo firewall-cmd --reload
7.1.5. 再次查看端口的开放情况:
 firewall-cmd --list-all
 ports:里出现了 80 端口

7.2 服务商添加安全组

不赘述

7.3 TIPS
7.3.1.Linux 系统默认只开放了22端口
7.3.2.而http 需要80/8080端口
7.3.3.https 需要443端口
7.3.4.我似乎是在docker-compose up -d命令时,发现Docker内的OJ需要8080端口

8.结束

如何自己搭建一个OJ(在线判题系统)?

参考网站

1.https://www.bilibili.com/video/av21303002/?p=11[尚硅谷_韩顺平_Linux教程(千万级学习人次的经典教程,2018重磅升级)]

2.尚硅谷_Docker核心技术(基础篇)

3.Docker官网

4.[CSDN]阿里云centos7.x 打开80端口

5.腾讯云学生服务器

6.【GITHUB】青岛大学开源OJ

##tips:
####A. linux 下 pip 安装教程
#####A.a 下载文件

wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate

#####A.b 执行安装

python get-pip.py

相关标签: