centos7-12-手动和docker分别安装seafile
作者:互联网
1 手动安装seafile
#cat /etc/centos-release
CentOS Linux release 7.8.2003 (Core)
参考官网部署 Seafile 服务器(使用 MySQL/MariaDB)
1.1 下载解压配置依赖
(1)下载
官网下载页面
安装包seafile-server_8.0.4_x86-64.tar.gz
安装包seafile-server_7.1.5_x86-64.tar.gz
(2)解压
#mkdir -p /opt/seafile/installed
#tar -xzvf seafile-server_7.1.5_x86-64.tar.gz -C /opt/seafile
#mv seafile-server_7.1.5_x86-64.tar.gz /opt/seafile/installed/
查看目录如下
和seafile 相关的配置文件都可以放在 /opt/seafile/conf 目录下,便于集中管理。后续升级时,你只需要解压最新的安装包到 /opt/seafile 目录下。
1.2 准备工作
1.2.1 安装相关依赖
centos7中安装依赖
#yum install python3 python3-setuptools python3-pip python3-ldap -y
#pip3 install --timeout=3600 Pillow pylibmc captcha jinja2 sqlalchemy psd-tools \
django-pylibmc django-simple-captcha
1.2.2 安装mysql数据库
mysql> SHOW VARIABLES LIKE ‘validate_password%’;
变量定义:
(1)validate_password_check_user_name:验证密码检查用户名,非必须
(2)validate_password_dictionary_file:验证密码字典文件,无要求(3)validate_password_length:验证密码长度,8字符
(4)validate_password_mixed_case_count:验证密码混合大小写字符数,1
(5)validate_password_number_count:验证密码数字字符数,1
(6)validate_password_policy:验证密码策略,中等
(7)validate_password_special_char_count:验证密码特殊字符数,1
解决办法:
简单2步即可解决,修改验证密码相关数据以支持简单密码设置:
mysql> set global validate_password_length=6;
mysql> set global validate_password_policy=0;
1.2.3 安装nginx代理
1.3 安装seafile
#cd /opt/seafile/seafile-server-7.1.5/
#./setup-seafile-mysql.sh #运行安装脚本并回答预设问题
(1)主机名
(2)IP地址
(3)seafile文件服务器的端口
(4)选择一种创建 Seafile 数据库的方式
按相关提示流程操作。
指定用户seafile的密码为bigdata。
得到如下配置信息
---------------------------------
Press ENTER to continue, or Ctrl-C to abort
---------------------------------
Generating ccnet configuration ...
done
Successly create configuration dir /opt/seafile/ccnet.
Generating seafile configuration ...
Done.
done
Generating seahub configuration ...
----------------------------------------
Now creating ccnet database tables ...
----------------------------------------
----------------------------------------
Now creating seafile database tables ...
----------------------------------------
----------------------------------------
Now creating seahub database tables ...
----------------------------------------
creating seafile-server-latest symbolic link ... done
-----------------------------------------------------------------
Your seafile server configuration has been finished successfully.
-----------------------------------------------------------------
seafile-server-latest文件夹为指向当前 Seafile 服务器文件夹的符号链接。
将来升级到新版本后, 升级脚本会自动更新使其始终指向最新的 Seafile 服务器文件夹。
1.4 启动Seafile 服务器和 Seahub 网站
在 seafile-server-latest 目录下,运行如下命令
#cd /opt/seafile/seafile-server-latest/
#./seafile.sh start # 启动 Seafile 服务
#./seahub.sh start # 启动 Seahub 网站 (默认运行在127.0.0.1:8000端口上)
管理员账号为邮箱19789xxx514@qq.com。
设置管理员密码bigdata。8000端口默认监听在127.0.0.1地址上,这意味着您无法直接通过8000端口访问Seafile服务。建议您配置nginx反向代理。
#curl http://127.0.0.1:8000
1.5 nginx下配置 Seahub
参考官网Nginx 下配置 Seahub
Seahub 是 Seafile 服务器的网站界面. SeafServer 用来处理浏览器端文件的上传与下载. 默认情况下, 它在 8082 端口上监听 HTTP 请求.
这里我们通过反向代理(Reverse Proxy)部署 SeafServer.
将server添加到/etc/nginx/nginx.conf中
server {
listen 80;
server_name seafile.example.com;
proxy_set_header X-Forwarded-For $remote_addr;
location / {
proxy_pass http://127.0.0.1:8000;
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;
access_log /var/log/nginx/seahub.access.log;
error_log /var/log/nginx/seahub.error.log;
}
location /seafhttp {
rewrite ^/seafhttp(.*)$ $1 break;
proxy_pass http://127.0.0.1:8082;
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;
}
location /media {
root /opt/seafile/seafile-server-latest/seahub;
}
}
Nginx 默认设置 “client_max_body_size” 为 1M。如果上传文件大于这个值的话,会报错,相关 HTTP 状态码为 423 (“Request Entity Too Large”). 你可以将值设为 0 以禁用此功能。
#nginx -s reload
#systemctl restart nginx
1.6 使用
网址http://10.23.241.202。
上传的数据在这个目录下/opt/seafile/seafile-data/storage/fs。
1.7 关闭/重启 Seafile 和 Seahub
(1)关闭
./seahub.sh stop # 停止 Seahub
./seafile.sh stop # 停止 Seafile 进程
(2)重启
./seafile.sh restart # 停止当前的 Seafile 进程,然后重启 Seafile
./seahub.sh restart # 停止当前的 Seahub 进程,并在 8000 端口重新启动 Seahub
2 docker安装seafile
参考官网用Docker部署Seafile
宿主机centos7操作系统
IP地址10.23.241.202
2.1 安装 docker-compose
因为 Seafile v7.x.x 容器是通过 docker-compose 命令运行的。
#yum install docker-compose -y
2.2 下载修改 docker-compose.yml
下载 docker-compose.yml 示例文件到您的服务器上,然后根据您的实际环境修改该文件。尤其是以下几项配置:
(1)MySQL root 用户的密码 (MYSQL_ROOT_PASSWORD and DB_ROOT_PASSWD)
(2)持久化存储 MySQL 数据的 volumes 目录 (volumes)
(3)持久化存储 Seafile 数据的 volumes 目录 (volumes)
提前下载镜像
docker pull mariadb:10.5
docker pull memcached:1.5.6
docker pull seafileltd/seafile-mc:latest
docker-compose.yml
version: '2.0'
services:
db:
image: mariadb:10.5
container_name: seafile-mysql
environment:
- MYSQL_ROOT_PASSWORD=bigdata # Requested, set the root's password of MySQL service.
- MYSQL_LOG_CONSOLE=true
volumes:
- /opt/seafile-mysql/db:/var/lib/mysql # Requested, specifies the path to MySQL data persistent store.
networks:
- seafile-net
memcached:
image: memcached:1.5.6
container_name: seafile-memcached
entrypoint: memcached -m 256
networks:
- seafile-net
seafile:
image: seafileltd/seafile-mc:latest
container_name: seafile
ports:
- "80:80"
# - "443:443" # If https is enabled, cancel the comment.
volumes:
- /opt/seafile-data:/shared # Requested, specifies the path to Seafile data persistent store.
environment:
- DB_HOST=db
- DB_ROOT_PASSWD=bigdata # Requested, the value shuold be root's password of MySQL service.
# - TIME_ZONE=Asia/Shanghai # Optional, default is UTC. Should be uncomment and set to your local time zone.
- SEAFILE_ADMIN_EMAIL=me@example.com # Specifies Seafile admin user, default is 'me@example.com'.
- SEAFILE_ADMIN_PASSWORD=asecret # Specifies Seafile admin password, default is 'asecret'.
- SEAFILE_SERVER_LETSENCRYPT=false # Whether use letsencrypt to generate cert.
- SEAFILE_SERVER_HOSTNAME=seafile.example.com # Specifies your host name.
depends_on:
- db
- memcached
networks:
- seafile-net
networks:
seafile-net:
(1)默认的管理员账号是 me@example.com 并且该账号的密码是 asecret,您可以在 docker-compose.yml 中配置不同的用户名和密码。
(2)mysql中的数据被持久化到目录/opt/seafile-mysql/db。
/opt/seafile-mysql/db:/var/lib/mysql
(3)seafile的数据被持久化到目录/opt/seafile-data。
/opt/seafile-data:/shared
2.3 启动 Seafile 服务
在 docker-compose.yml 文件所在的目下执行以下命令启动 Seafile 服务。
#netstat -lnp | grep 80启动之前查看80端口是否占用
#docker-compose up -d
需要等待几分钟,等容器首次启动时的初始化操作完成后,就可以在浏览器上使用。
(1)访问http://seafile.example.com 来打开 Seafile 主页。
http://10.23.241.202
本地主机的0.0.0.0:80端口被映射到容器的80端口。
(2)查看/opt/seafile-data/nginx/conf下的文件seafile.nginx.conf
(3)进入容器中操作
#docker exec -it seafile /bin/bash
root@f86e7ebd0c4a:/# curl http://127.0.0.1:8000/
root@f86e7ebd0c4a:/# curl http://127.0.0.1:8000/library
容器中的地址http://127.0.0.1:8000/被代理到容器的80端口。
然后容器的80端口被映射到主机的80端口。
2.4 升级 Seafile 服务
如果要升级 Seafile 服务到最新版本:
docker pull seafileltd/seafile-mc:latest
docker-compose down
docker-compose up -d
标签:opt,12,seafile,server,centos7,proxy,docker,Seafile 来源: https://blog.csdn.net/qq_20466211/article/details/115246257