CentOS 7 部署 Seafile 服务器(使用 MySQL/MariaDB)
本文档用来说明通过预编译好的安装包来安装并运行基于 MySQL/MariaDB 的 Seafile 服务器。(MariaDB 是 MySQL 的分支)
提示:如果您是初次部署 Seafile 服务,我们建议您使用自动安装脚本来快速部署一个 Seafile 服务。
下载
到下载页面下载最新的服务器安装包.
假设你已经下载 seafile-server_*
到/opt/seafile
目录下。 我们建议这样的目录结构:
mkdir /opt/seafile
mv seafile-server_* /opt/seafile
cd /opt/seafile
#将 seafile-server_* 移动到 seafile 目录下后
tar -xzf seafile-server_*
mkdir installed
mv seafile-server_* installed
现在,你的目录看起来应该像这样:
#tree seafile -L 2
haiwen
├── installed
│ └── seafile-server_7.0.0_x86-64.tar.gz
└── seafile-server-7.0.0
├── reset-admin.sh
├── runtime
├── seafile
├── seafile.sh
├── seahub
├── seahub.sh
├── setup-seafile-mysql.sh
└── upgrade
这样设计目录的好处在于
-
和 seafile 相关的配置文件都可以放在
/opt/seafile/conf
目录下,便于集中管理. -
后续升级时,你只需要解压最新的安装包到
/opt/seafile
目录下.
安装 Seafile 服务器
安装前的准备工作
安装 Seafile 服务器之前,请确认已安装以下软件:
2、yum install zlib-devel libjpeg-devel freetype-devel #安装下依赖
# 在 CentOS 7 下
yum install mariadb-server #Seafile的MySQL数据库
yum install python-setuptools python-imaging python-ldap MySQL-python python-memcached python-urllib3 #MariaDB数据库的依赖
———————————————————————————————————————————
# 启动、开机启动 MariaDB数据库
systemctl start mariadb systemctl enable mariadb
注意:需要先设置MySQL的数据库初始密码
#登录MySQL数据库(就是MariaDB数据库)
mysql -u root -p
#提示输入密码,初始密码空,直接回车,看到欢迎界面。
MariaDB [(none)]>
#修改用户密码:12345678
update mysql.user set password=password('12345678') where user='root' and host='localhost';
#刷新一下
flush privileges;
#查看当前用户
MariaDB [(none)]> select user();
#退出
exit
_________________________________________________________________________________
Seafile 8.0.x 版本
# on CentOS 8 (本次我是安装在CentOS7.5系统下,用这个命令是正常的)
yum install python3 python3-setuptools python3-pip python3-ldap python3-devel mysql-devel gcc gcc-c++ -y
pip3 install --timeout=3600 django==2.2.* future mysqlclient pymysql Pillow pylibmc \ captcha jinja2 sqlalchemy==1.4.3 psd-tools django-pylibmc django-simple-captcha
注意:seafile 9.0.x 版本不支持在 Centos 系统 tar 包部署,支持 Docker 方式部署,因此此次下载安装8.0.8版本
安装
cd seafile-server-*
./setup-seafile-mysql.sh #运行安装脚本并回答预设问题
该脚本会依次询问你一些问题,从而一步步引导你配置 Seafile 的各项参数:
在这里, 你会被要求选择一种创建 Seafile 数据库的方式:
-------------------------------------------------------
Please choose a way to initialize seafile databases:
-------------------------------------------------------
[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases
-
如果选择
1
, 你需要提供根密码. 脚本程序会创建数据库和用户。 -
如果选择
2
, ccnet/seafile/seahub 数据库应该已经被你(或者其他人)提前创建。
我们默认选择1,后面是简单设置,顺序填写即可。
如果安装正确完成,你会看到下面这样的输出 (新版本可能会有所不同)
现在你的目录结构看起来应该是这样:
seafile-server-latest
文件夹为指向当前 Seafile 服务器文件夹的符号链接. 将来你升级到新版本后, 升级脚本会自动更新使其始终指向最新的 Seafile 服务器文件夹.
启动 Seafile 服务器和 Seahub 网站
启动Seafile服务器
./seafile.sh start # 启动 Seafile 服务
启动Seahub
./seahub.sh start # 启动 Seahub 网站 (默认运行在8000端口上根据之前的配置)
6.3.0 及其之后的版本,我们弃用了 ./seahub.sh start <port>
的方式使seahub进程监听在其他端口。但是,您可以通过修改 conf/gunicorn.conf
中的端口设置来指定seahub启动端口。
小贴士: 你第一次启动 seahub 时,seahub.sh 脚本会提示你创建一个 seafile 管理员帐号
————————————————————————————————————————————————————————————————————————
如果你想在其他端口上运行 Seahub
如果你不想在默认的 8000 端口上运行 Seahub, 而是想自定义端口(比如8001)中运行,请按以下步骤操作:
- 关闭 Seafile 服务器
./seahub.sh stop # 停止 Seafile 进程
./seafile.sh stop # 停止 Seahub
- 更改
haiwen/conf/ccnet.conf
文件中SERVICE_URL
的值(假设你的 ip 或者域名时192.168.1.100
), 如下 (从 5.0 版本开始,可以直接在管理员界面中设置。注意,如果同时在 Web 界面和配置文件中设置了这个值,以 Web 界面的配置为准。):
SERVICE_URL = http://192.168.1.100:8001
- 重启 Seafile 服务器
./seafile.sh start # 启动 Seafile 服务
./seahub.sh start 8001 # 启动 Seahub 网站 (运行在8001端口上)
关闭/重启 Seafile 和 Seahub
关闭
./seahub.sh stop # 停止 Seahub
./seafile.sh stop # 停止 Seafile 进程
重启
./seafile.sh restart # 停止当前的 Seafile 进程,然后重启 Seafile
./seahub.sh restart # 停止当前的 Seahub 进程,并在 8000 端口重新启动 Seahub
如果停止/重启的脚本运行失败
大多数情况下 seafile.sh seahub.sh 脚本可以正常工作。如果遇到问题:
- 使用pgrep命令检查 seafile/seahub 进程是否还在运行中
pgrep -f seafile-controller # 查看 Seafile 进程
pgrep -f "seahub" # 查看 Seahub 进程
- 使用pkill命令杀掉相关进程
pkill -f seafile-controller # 结束 Seafile 进程
pkill -f "seahub" # 结束 Seafile 进程
OK!我们继续
————————————————————————————————————————————————
防火墙开放8000 , 8082端口
Seabub: 8000
FileServer: 8082
默认情况下,我们的服务器没有开放8000,8082端口,那么我们需要去开放8000,8082端口。
CentOS升级到7之后,发现无法使用iptables控制Linuxs的端口,Centos 7使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口:
开启端口
[root@centos7 ~]# firewall-cmd --zone=public --add-port=8000/tcp --permanent
[root@centos7 ~]# firewall-cmd --zone=public --add-port=8082/tcp --permanent
查询端口号8000 是否开启:
[root@centos7 ~]# firewall-cmd --query-port=8000/tcp
yes
重启防火墙:
[root@centos7 ~]# firewall-cmd --reload
查询有哪些端口是开启的:
[root@centos7 ~]# firewall-cmd --list-port
8000/tcp 8082/tcp
命令含义:
--zone #作用域
--add-port=8000/tcp #添加端口8000,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
关闭firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
至此,Seafile服务器安装完成,你可以访问
http://你的IP
https://blog.csdn.net/h952520296/article/details/89472518