本文及资源最后更新时间 2021-11-15 by sky995
最近接到一个任务,帮老师搭建一个在线能下载课件的小云盘,不需要登录,转念一想,彩虹外链网盘刚好满足这个需求,于是就拿来部署。在宝塔上部署是一点问题都没有的,但是部署到我们的服务器时,却发现了很大的问题。
目前我们OJ的服务器已经全部是docker虚拟化了,目前所有运行的程序全部使用docker的方式部署,一方面提升了稳定性,一方面让服务器也比较好管理。
使用Docker部署
常规操作,先搜索一下有么有可用的环境
sudo docker search php
发现正好有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
原版的二维码生成是调用的api,经常性的生成失败,并且还很慢,于是我更改成了使用js生成的方式,更加快速好用。
程序下载
原版下载:彩虹外链网盘V5.2
修改版本下载:wlpan.zip – 蓝奏云