基于centos8使用seafile搭建家用nas
目录
前言:
1、背景
博主第一次在linux下搭建家用nas,过程中遇到了不少问题。有极端低级的错误,也有超级头疼的困难。在几天的摸索下也终于将这些问题逐一解决,成功搭建了一台家用nas。希望以下方法对每一位想通过centos8搭建家用nas的同学能有所帮助。(小白总结,大神勿喷)
若对linux系统操作一无所知,请先阅读此篇博客:Linux常用命令_Demon的博客-CSDN博客_linux常用命令
正文:
1、 虚拟机的建立和SSH连接
正式在物理机上实操之前,建议先通过虚拟机来模拟服务器的搭建过程。通过虚拟机能够更为高效地部署服务器和发现各个问题的错误来源。以下以Vmware Workstation 16 Pro为例。
成功安装镜像,并设置网络适配器为桥接模式,以为虚拟机取得和物理机相同的网络地位。保存当前快照,便于日后出错还原。建议每进行一步重要操作后都保存快照。
登录后输入
ip addr
获取虚拟机ip地址。
安装MobaXterm,与虚拟机建立SSH连接。(注意:一定要记清ip地址) 若出现X11-forwarding disabled 输入
yum install xorg-x11-xauth
安装相对应的依赖包即可解决。
2、安装mariadb
以下在mariadb下部署seafile服务器。
打开seafile官网下服务器手册。
根据手册逐步完成,下载时使用wget工具,使用方法: wget URL 。
成功下载以及部署目录后,先进行mariadb的安装,防止在安装seafile依赖包的时候出错。
返回至根目录,输入
yum install mariadb*
进行安装mariadb。
输入
systemctl start mariadb.service
启动mariadb数据库服务。
输入
systemctl enable mariadb.service
将mariadb数据库服务设为开机自启动。
若出现 Failed to find mariadb.service 错误提示,则输入
rpm -q mariadb-server
检查是否安装 mariadb-server 。
若安装,尝试重启后再次启动。
若未安装,输入
yum install mariadb-server
进行安装,完成后再次启动。
输入
mysql_secure_installation
进行mariadb数据库安全配置。
首次进入未设定密码在密码输入行直接敲击Enter键进入密码设置端。
设置root密码。
是否移除匿名用户 -y
是否禁止root远程登陆 -n
是否移除测试数据库 -y
是否重新加载私人目录 -y
输入
mysql -p
进入登陆界面,测试是否能够登陆成功。
登陆成功!输入
quit
退出数据库。数据库安装配置成功。
3、安装seafile依赖包
进入服务器手册,依据手册提示依次安装seafile依赖包。
出现 (尝试在命令行中添加 '--allowerasing' 来替换冲突的软件包 或 '--skip-broken' 来跳过无法安装的软件包 或 '--nobest' 来不只使用软件包的最佳候选) 提示,仅是因为mariadb版本未升级,而mariadb-connector-c-devel等先升级造成冲突,可在安装命令之后加入提示中的
--allowerasing
来进行替换,或者卸载掉mariadb进行降级安装。
注意,一行命令中同时安装多个依赖包时有可能会出错,可拆分进行单个安装。
根据手册完成seafile安装,根据提示逐一完成配置。
4、开放防火墙端口及更改seafile配置文件
进行防火墙端口配置。
输入
firewall-cmd --list-all
查看开放了几个端口。
1. firewall-cmd --zone=public --add-port=8000/tcp --permanent
2. firewall-cmd --zone=public --add-port=8082/tcp --permanent
开放8000,8082两个默认端口
输入
systemctl restart firewalld
重启防火墙以更新其配置。
根据服务器手册,开启seafile,seahub服务。
进入seafile网页端,发现无法访问。
输入
cd seafile/conf
进入配置文件目录。
输入
vim gunicorn.conf.py
进入配置文件按i对其进行编辑,修改bind为本机所对应的ip地址。
按esc键退出,输入:wq保存退出。
返回至seafile-server-latest/ 目录,输入
1. ./seafile.sh restart
2. ./seahub.sh restart
对seafile和seahub服务进行重启,再次进入网站,成功!
登陆。
进入系统管理。
查看SERVICE_URL与FILE_SERVER_ROOT的值是否正确。
5、创建数据盘raid1
进入Vmware添加磁盘,选择SATA,20G,共添加两块,以便创建raid1。
重启后输入
fdisk -l
查看磁盘信息。
输入
fdisk /dev/sdb
进入编辑磁盘信息。
输入 n p t fd 给磁盘创建raid1分区。输入p打印当前信息。核对信息无误,输入w写入磁盘。
对sdc进行相同操作。
输入
ls /dev/sd*
列出磁盘信息。
输入
1. mdadm -E /dev/sd[b-c]
2. mdadm -C -v /dev/md1 -l 1 -n 2 /dev/sd[b-c]1
创建raid1。
Continue creating array? -y
输入 mdadm -D /dev/md1 查看raid1的详细信息。
创建成功!
输入
mkfs -t xfs /dev/md1
进行格式化设备。
输入
mkdir raid1
进行创建挂载目录。
输入
mount /dev/md1 raid1/
进行md1在raid1上临时挂载。
输入 df 查看挂载信息。
输入
blkid /dev/md1
查询md1UUID,拷贝。
输入
vim /etc/fstab
进行编辑磁盘配置文件,在最后一行上加上 UUID=… /raid1 xfs dafaults 0 0 进行永久挂载。
输入
systemctl daemon-reload
重新加载system守护进程。
重启后查看是否挂载成功。
输入
1. mdadm -Dsv
2. mdadm -Dsv >/etc/mdadm.conf
3. cat /etc/mdadm.conf
生成raid的配置文件。
输入
echo “hello world” >>raid1/text.txt
创建一个测试文件。
输入
mdadm /dev/md1 -f /dev/sdc1
模拟坏一块盘。
输入
mdadm -D /dev/md1
进行查看详细信息。
输入
cat /raid1/text.txt
进行查看text.txt文件。
查看成功!创建成功!
输入
mdadm /dev/md1 -r /dev/sdc1
移除模拟坏盘。
输入
mdadm -D /dev/md1
进行查看详细信息。
6、迁移seafile数据目录至数据盘
接下来更改seafile-data存放路径。
输入
mv /root/seafile/seafile-data /raid1/
将seafile-data目录移动到raid1目录下,raid1为数据盘挂载点。
输入
ln -s /raid1/seafile-data /root/seafile/seafile-data
为seafile-data目录设置一个软链接。
如此,各seafile实例将共享同一个seafile-data目录,所有其他配置文件和日志文件将保持独立。
7、seafile用户通过管理员添加或删除
登陆管理员账号后在系统管理界面下可进行。
8、seafile设置开机自启动
博主在按照服务器手册上进行seafile的开机自启动的设置时总是失败。使用systemd方法,检查报203错误,后经过高人指点,发现是本机系统环境在安装过程中发生了改变。若按照服务器手册配置成功,请跳过此节。以下为解决方法。
按照服务器手册创建服务文件,在复制时注意删去多出的<feff>以及多余的空行,以防运行时错误。user和group若无创建用户请改为root,若按照本文方法进行到此步,seafile安装地址为/root/seafile。
保存
输入
systemctl daemon-reload
重新加载system守护进程
关闭seafile和seahub后,输入
systemctl start seafile
查看是否能够启动。
若不能,输入
vim /etc/systemd/system/seafile.service
进行编辑。
` 1. [Unit] 2. Description=Seafile 3. # add mysql.service or postgresql.service depending on your database to the line below 4. After=network.target mariadb.service 8. [Service] 9. Type=oneshot 10. ExecStart=/bin/bash /root/seafile/seafile-server-latest/seafile.sh start 11. ExecStop=/bin/bash /root/seafile/seafile-server-latest/seafile.sh stop 12. RemainAfterExit=yes 13. User=root 14. Group=root 15. [Install] 16. WantedBy=multi-user.target `
![](https://img2023.cnblogs.com/blog/3078251/202407/3078251-20240704220236951-908381921.png)
在ExecStart,ExecStop后添加/bin/bash。注意,得保证seafile.sh文件中开头有 #!/bin/bash 。
在再次启动之前,输入
bash
查看bash是否能够正常运行
输入
/bin/bash
查看路径是否正确。
重新加载,启动,查看是否正常。
seahub同理。
重启,测试服务是否能够正常自启。
9、设置静态ip地址
因为交换机DHCP的功能,每次重新接入网络时ip地址都会被随机分配。设置静态ip地址以后可以避免。
输入
nmtui
进入可视化网卡配置。
设置,退出。
输入
nmcli c reload
进行重新加载。
输入
nmcli c up ens33
进行开启网卡,ens33为网卡名称。
重新连接ssh。
重新更改bind,网页端地址更改。
完成!应用至物理机。