目前我们OJ的服务器已经全部是docker虚拟化了,目前所有运行的程序全部使用docker的方式部署,一方面提升了稳定性,一方面让服务器也比较好管理。

使用Docker部署

常规操作,先搜索一下有么有可用的环境

sudo docker search php

彩虹外链网盘5.2魔改版下载及Docker下部署教程

发现正好有nginx+php封装好的docker镜像 webdevops/php-nginx,于是就拉下来我最喜爱的7.2

sudo docker pull webdevops/php-nginx:7.2

在本地创建目录,然后对容器进行关联,此镜像中的运行目录在/app,于是我们就可以用下方的命令创建目录并运行,把容器的443端口映射在宿主机的8039端口,80端口映射在8040端口上(单纯使用的话可以直接80)

sudo mkdir /opt/chp/app  # 这里自行创建目录
sudo docker run --name chp-a -p8039:443 -p 8040:80 -d \
    -v /opt/chp/app:/app   \
    --privileged=true \
    webdevops/php-nginx:7.2

,把程序解压放到/opt/chp/app目录然后访问ip:8040 进行安装。

传统方式部署

使用宝塔创建网站,然后上传程序,访问安装即可

彩虹外链网盘修改

为什么要修改呢?因为这个程序使用docker的方式还是有点问题的,暂且不知是什么原因导致的,原版在预览文件和下载文件的时候,路由是使用php的$_SERVER[PATH_INFO]的方式来获取文件hash的,这导致在docker部署的情况下没有正确的读到路径中的信息,于是我修改成了使用?读取参数的形式。

同时,替换了原版的播放器,添加了Dplayer和Aplayer

彩虹外链网盘5.2魔改版下载及Docker下部署教程

彩虹外链网盘5.2魔改版下载及Docker下部署教程

原版的二维码生成是调用的api,经常性的生成失败,并且还很慢,于是我更改成了使用js生成的方式,更加快速好用。

彩虹外链网盘5.2魔改版下载及Docker下部署教程

程序下载

原版下载:彩虹外链网盘V5.2

修改版本下载:wlpan.zip – 蓝奏云