[杂]小白也能搭一个OJ!(依赖青岛开源OJ)

文章目录

    • 0.须知
    • 1.系统环境
    • 2. 如何开一个桌面?
        • 2.1. 安装GNOME桌面
      • 3. 如何安装python?
        • 3.1.下载,解压,编译,安装:
        • 3.2.链接
      • 3.3.配置pip3
      • 4. 如何手动安装pip3?
        • 4.1.执行
        • 4.2.为什么需要pip3?
    • 5. 如何安装Docker?
        • 5.2.仓库
          • 5.2.1 安装所需的软件包。yum-utils提供了yum-config-manager 效用,并device-mapper-persistent-data和lvm2由需要 devicemapper存储驱动程序。
        • 5.2.2 使用以下命令来设置稳定的存储库。
      • 5.3 安装Docker Engine-Community和containerd
        • 5.3.1 安装最新版本的Docker Engine-Community和containerd,或者转到下一步安装特定版本:
        • 5.4 启动Docker。
        • 5.5 通过运行hello-world 映像来验证是否正确安装了Docker Engine-Community 。
        • 5.6 参考网站
    • 6. 安装QingdaoU/OnlineJudgeDeploy
        • 6.1.安装必要的依赖
          • 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.请选择磁盘空间富余的位置,运行下面的命令
          • 6.2.2.启动服务
          • 6.2.3.TIPS
        • 6.3.尽情享用吧
          • 6.3.1.通过浏览器访问服务器的 HTTP 80 端口或者 HTTPS 443 端口,就可以开始使用了。后台管理路径为/admin, 安装过程中自动添加的超级管理员用户名为 root,密码为 rootroot, 请务必及时修改密码。
          • 6.3.2.不要忘记阅读文档 http://docs.onlinejudge.me/
        • 7. 如何开linux的端口?
          • 7.1.1.关闭与开启防火墙
          • 7.1.2.查看防火墙是否开启的状态,以及开放端口的情况
          • 7.1.3. 通过以下命令开放http 80 端口
          • 7.1.4 .然后重启防火墙:
          • 7.1.5. 再次查看端口的开放情况:
        • 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.最终效果
      • 8.1.空白主页效果
      • 8.2.后台效果
    • 参考网站
        • 1.https://www.bilibili.com/video/av21303002/?p=11[尚硅谷_韩顺平_Linux教程(千万级学习人次的经典教程,2018重磅升级)]
        • 2.[尚硅谷_Docker核心技术(基础篇)](https://www.bilibili.com/video/av27122140/?p=9 "尚硅谷_Docker核心技术(基础篇)")
        • 3.[Docker官网](https://docs.docker.com/install/linux/docker-ce/centos/ "Docker官网")
        • 4.[[CSDN]阿里云centos7.x 打开80端口](https://blog.csdn.net/tengqingyong/article/details/82805053 "[CSDN]阿里云centos7.x 打开80端口")
        • 5.[腾讯云学生服务器](https://cloud.tencent.com/act/campus?from=10082 "腾讯云学生服务器")
        • 6.[【GITHUB】青岛大学开源OJ](https://github.com/QingdaoU/OnlineJudgeDeploy "【GITHUB】青岛大学开源OJ")
    • tips:
        • A. linux 下 pip 安装教程
          • A.a 下载文件
          • A.b 执行安装

0.须知

我这里的角度是站在什么都不会的小白的角度,如何快速,廉价,可靠的获得一个OJ的个人体验。
本次我们用到的知识点:
1.linux操作系统和简单的命令
2.安装python 和 pip3
3.安装Docker
4.依赖青岛OJ 安装QingdaoU/OnlineJudgeDeploy
5.配置端口和防火墙
6.重写服务器安全组

前置条件:
1.一个Linux环境的云服务器
2.基本的Linux命令

如果你完成了 前置条件,那么接下来你可以熟悉一下青岛开源OJ文档
如果你有丰富的经验,那么你可以独立完成
如果你是一名小白,那么你可以依赖我彻头彻尾的经验,请继续看下去

因为当时我被要求尽快提供一个OJ,所以这里只贴出解决方案,而不详细分析

1.系统环境

你需要找一个云服务器的服务商,购买一台云服务器来跑接下来的程序
这里我使用的是 CentOS7的环境
服务商是腾讯云

2. 如何开一个桌面?

我准备的GNOME桌面

2.1. 安装GNOME桌面

yum groupinstall “X Window System” #X 窗口系统
yum groupinstall “GNOME Desktop”  #GNOME系统桌面
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= P A T H : 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?

在命令“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.安装必要的依赖

sudo apt-get update && sudo apt-get install -y vim python-pip curl git
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.最终效果

8.1.空白主页效果

在这里插入图片描述

8.2.后台效果

[杂]小白也能搭一个OJ!(依赖青岛开源OJ)_第1张图片

参考网站

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

你可能感兴趣的:(杂)