最新的seafile社区版服务端为9.0.6,在用的服务端还是8.0.7,前段时间准备升级的,看了官方升级文档后感觉有点麻烦,需要劝退,最近得空,干脆升级到最新版,docker部署确实香,以前基本都是大版本才会更新,二进制包的服务端升级太容易出错了,水平有限,很多次都是找不到升级失败的原因,最终不得不新装然后导入数据库的方式升级。。。
记录下踩的坑:
服务器环境centos8.5
因为从 9.0 开始,二进制包不能运行在 CentOS 7, CentOS 8 上。需要在 CentOS 或其他一些二进制包不支持的平台上运行 Seafile的要迁移到 Docker 方式来运行 Seafile。
官方迁移文档:非 Docker 部署 Seafile 迁移到 Docker
参考的官方论坛文档:2021年CentOS 7 docker部署seafile8+OnlyOffice
一、部署docker
部署docker环境参照上面的连接
遇到的坑:
1.因为服务器环境centos8.5,安装docker compose的时候需要使用pip3来安装
#安装 PIP3 yum -y install python3-pip #更新 PIP3 pip3 install --upgrade pip #安装 Docker Compose pip3 install docker-compose # 查看docker compose的版本 docker-compose version
二、从8.0.7社区版迁移到docker部署并升级9.0.6
遇到的坑:
1."docker-compose logs -f"里面显示seahub web服务未成功启动
#logs错误显示内容 Starting seahub at port 8000 … Error:Seahub failed to start. Please try to run “./seahub.sh start” again
因为我不是用seafile默认的目录名,导致docker容器内seahub.pid不能生成,所以seahub web服务不能启动。。。搜索都快被我按坏了,找的我好苦(花了几个小时终于找到原因)。
#修改conf配置文件夹内的gunicorn.conf.py配置文件 #我原来的路径为 /XXXX/seafile/pids,改为seafile默认的即可 /opt/seafile/pids
三、本地nginx反代
seafile docker容器内带有一个nginx,默认web使用80端口,因为服务器有其它web需要,不能给80端口,分配了其它端口。
遇到的坑:
1.通过本地nginx反代后,可以登录web页面,但是点开文件下载显示“找不到页面文件”,大概是这个意思,也不能直接下载。
#参照官方反代配置稍微修改下本地nginx反代配置即可 location / { proxy_pass http://127.0.0.1:9000; #9000是我docker用的的端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; proxy_read_timeout 1200s; # used for view/edit office file via Office Online Server client_max_body_size 0; } location /seafhttp { # rewrite ^/seafhttp(.*)$ $1 break; 注释掉不要了 proxy_pass http://127.0.0.1:9000/seafhttp; #9000是我docker用的的端口 client_max_body_size 0; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 36000s; proxy_read_timeout 36000s; proxy_send_timeout 36000s; send_timeout 36000s; }
本文链接:http://www.bosim.vip/index.php/post/38.html
--EOF--
发表于 2022-07-27 。