文章目录
- 0.须知
- 1.系统环境
- 2. 如何开一个桌面?
- 3. 如何安装python?
- 3.3.配置pip3
- 4. 如何手动安装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.最终效果
- 参考网站
- 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:
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.后台效果
参考网站
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