我是一个医生,想在平时科研学习的过程中使用Seafile。为了方便使用,我在VPS上安装了宝塔面板作为vps的管理,我已经安装好seafile,在宝塔面板上创建新网页并反代IP:8000后seafile上传下载一切正常。为了加强安全我开启了用来反代seafile的域名的SSL。但开启https访问后,上传文件上传到100%后便显示网络错误,也无法下载文件。求助大神,希望能帮助我解决这个问题。感谢!
能出个教程么 怎么在宝塔 面板 装seafile
谢谢
这个问题我也遇到了,官方的https开启方法尝试过,没弄明白
花了半天时间,终于解决了这个问题,将解决过程发布如下:
通过Docker安装Seafile并开启HTTPS
一周前通过一般方法安装seafile,自我感觉美好。但在深入使用的过程中陆续发现doc文档无法预览、https下无法上传下载等致命问题。官方论坛搜索无果,在社群中一热心网友的提醒下我开始尝试使用Docker。现将全部过程记录如下,作为备忘,也作为他人避坑之指北。
文中的操作环境为CentOS 7,纯净环境。
安装Docker
尽量在纯净环境中进行安装。若不确定系统中有无Docker残留,先执行:
sudo yum remove docker docker-common docker-selinux docker-engine
安装需要的软件包, yum-util 提供 yum-config-manager 功能,另外两个是 devicemapper 驱动依赖的。
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
设置 yum 源。
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装Docker-CE。
sudo yum install docker-ce
启动Docker并将Docker加入开机启动
sudo systemctl start docker
sudo systemctl enable docker
启动Seafile-pro镜像
docker run -d --name seafile \
--restart=always \
-e SEAFILE_SERVER_LETSENCRYPT=true \ #https
-e SEAFILE_SERVER_HOSTNAME=xxx.xxx \ #your_hostname
-e SEAFILE_ADMIN_EMAIL=xxx@xxx.xxx \ #your_email
-e SEAFILE_ADMIN_PASSWORD=xxx \ #your_passwd
-v /data/seafile-data:/shared \
-p 8080:80 \
-p 443:443 \
docker.seadrive.org/seafileltd/seafile-pro:latest
系统会自动拉取镜像并安装。
HTTPS的设置
执行以下命令,以获取容器的日志,并进行跟踪日志输出。
docker logs -f seafile
根据日志可发现,ssl文件目录已创建。现在需要申请ssl证书,并导入到seafile的ssl证书路径。
关闭Seafile。
docker stop seafile
将申请到的SSL证书crt和key文件放置于 /data/seafile-data/ssl
路径。注意!如果的域名为xxx.xxx, 那么证书文件名必需为xxx.xxx.crt,私钥称号必需为xxx.xxx.key。
运行Seafile。
docker start seafile
再执行以下命令,以获取容器的日志,并进行跟踪日志输出。
docker logs -f seafile
Seafile至此可正常使用了。
通过宝塔面板自动申请并续期SSL证书
宝塔面板可以自动申请并续期,我们通过ln
命令来将宝塔面板申请到的证书与seafile的证书路径连接起来,从而达到自动续期的目的。
在执行此命令之前,应该删除 /data/seafile-data/ssl
路径下的xxx.xxx.key
文件。
ln /www/server/panel/vhost/cert/xxx.xxx/fullchain.pem /data/seafile-data/ssl/xxx.xxx.crt #your_hostname
ln /www/server/panel/vhost/cert/xxx.xxx/privkey.pem /data/seafile-data/ssl/xxx.xxx.key ##your_hostname
运行Seafile。
docker start seafile
此时会遇到报错
Error starting userland proxy: listen tcp 0.0.0.0:443: bind: address already in use
提示443端口被占用。前往宝塔面板网页配置文件,修改443端口为444。
运行Seafile。
docker start seafile
再执行以下命令,以获取容器的日志,并进行跟踪日志输出。
docker logs -f seafile
Seafile至此可正常使用了。Enjoy!
我已经解决了,请参看我的回帖。