最近接到一个任务,帮老师搭建一个在线能下载课件的小云盘,不需要登录,转念一想,彩虹外链网盘刚好满足这个需求,于是就拿来部署。在宝塔上部署是一点问题都没有的,但是部署到我们的服务器时,却发现了很大的问题。

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

使用Docker部署

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

sudo docker search php

image-20211003105152358

发现正好有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

image-20211003110924758

image-20211003110844309

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

image-20211003110959159

程序下载

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

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

Office365 微信公众号
最后修改:2021 年 10 月 08 日 10 : 48 PM
如果您觉得我的文章有帮助,请随意赞赏!