基于centos8使用seafile搭建家用nas

news/2024/10/6 1:20:32/文章来源:https://www.cnblogs.com/zbyisgudi/p/18284768

目录

前言:

        1、背景

正文:

        1、 虚拟机的建立和SSH连接

        2、安装mariadb

        3、安装seafile依赖包

        4、开放防火墙端口及更改seafile配置文件

        5、创建数据盘raid1

        6、迁移seafile数据目录至数据盘

        7、seafile用户通过管理员添加或删除

        8、seafile设置开机自启动

        9、设置静态ip地址


前言:

        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 --permanent2.  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 restart2.  ./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 -Dsv2.  mdadm -Dsv >/etc/mdadm.conf3.  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,网页端地址更改。

完成!应用至物理机。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/738312.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Ubantu22.04中运行ORB_SLAM3并进行源码解析

在Ubantu22.04中运行ORB_SLAM3并进行源码解析 1.ORB_slam3简介 ORB-SLAM3 是一款前沿的即时定位与建图(SLAM)系统,专为大规模环境下的实时定位与三维重建设计。系统兼容多种视觉传感器配置,包括单目、立体双目以及RGB-D相机。ORB-SLAM3 采用 Oriented FAST 和 Rotated BRIE…

Joplin主题样式及markdown渲染样式更改

本文详细介绍了如何在Joplin笔记软件中更改主题样式和Markdown渲染样式,提供了具体的操作步骤和代码示例,帮助用户自定义Joplin的外观,使其更加美观和符合个人喜好。前言 Joplin是一款极佳的笔记软件,拥有开源、免费、可自定义程度高等多种优点,但其默认的软件主题和Markd…

模拟集成电路设计系列博客——9.2 电平转换器

模拟集成电路设计 9.2 电平转换器 电平转换器是集成电路设计中的一个重要部分,常用于芯片多电压域低功耗设计和I/O中。我们知道在集成电路中,I/O电压与Core电压常常处于两个不同的电压域,因此我们需要使用电平转换器(level shifter)来将I/O电压降低到Core电压,或者将Core…

泛语言计划 第二弹 函数

开始之前,我们先复习一下数学中是怎么定义函数的。 数集A和B,如果A所有数在B中都存在且只有一个数与之对应,则称B是A的函数 由此,我们可以看出一个关键词:对应。 编程中的函数也一样,只是编程中不一定是数,也可以是布尔值、字符串,甚至操作。 这个A集,我们叫他参数,B…

Kubernetes云原生存储解决方案openebs部署实践-4.0.1版本(helm部署)

Kubernetes云原生存储解决方案openebs部署实践-4.0.1版本(helm部署) 简介 OpenEBS 是一种开源云原生存储解决方案。OpenEBS 可以将 Kubernetes 工作节点可用的任何存储转化为本地或复制的 Kubernetes 持久卷。OpenEBS 帮助应用和平台团队轻松地部署需要快速、持久耐用、可靠且…

想要流程化办公,不妨了解拖拽式报表设计器!

看看拖拽式报表设计器是如何为客户降低成本、提高效率,携手进入产业分工新时代。当前,经济发展越来越快,经济水平提升的同时也给职场人提成了更高的要求。很多领域的客户都希望能实现降本、提质、增效,进入流程化办公新时代,可以先来了解低代码技术平台、拖拽式报表设计器…

代码随想录算法训练营第四十九天 | 300.最长递增子序列 674.最长连续递增序列 718.最长重复子数组

300.最长递增子序列 题目链接 文章讲解 视频讲解动规五部曲:dp[i]: 表示考虑元素i的最长子序列为dp[i] 递推公式:dp[i] = max(dp[j] + 1, dp[i]); 初始化:dp[i] = 1; 每个元素单独算一个子序列长度为1 遍历顺序:从前向后遍历 打印dp数组class Solution { public:int length…

基于LEACH路由协议的网络性能matlab仿真,包括数据量,能耗,存活节点

1.程序功能描述LEACH的原理在于它将传感器节点分为两类:簇头节点和普通节点。普通节点将数据发送给距离自己最近的簇头节点,然后簇头节点将收集到的数据融合后发送给基站。这种机制可以减少网络中节点的能耗,并且能够提高数据融合比例,减少传输数据量。本课题将分别对比lea…

高二的他已通过NOI保送北大了,让我们一起了解他的信息学奥赛学习经历吧!!!

相信关注本号的各位,对于信息学奥赛已经不陌生了,部分同学也已经开始踏入信息学的旅程,但前路茫茫,让我相信关注本号的各位,对于信息学奥赛已经不陌生了,部分同学也已经开始踏入信息学的旅程,但前路茫茫,让我们一起看看已经取得成就的同学的经历吧。今天要介绍的这位同…

VPS折腾记七搭建稍后阅读应用

1.简介 看微信公众号的时候,文章太长,可以收藏起来,但是等到晚上看的时候,发现作者已经删除了,很遗憾。wallabag能够收藏文章并且保存到服务器,让我们可以稍后阅读,而且也不怕文章丢失。 wallabag is a self hostable application for saving web pages: Save and class…

基于PSO粒子群优化的CNN-LSTM的时间序列回归预测matlab仿真

1.算法运行效果图预览 2.算法运行软件版本 matlab2022a3.部分核心程序for i=1:Iterifor j=1:Npeoprng(i+j)if func_obj(x1(j,:))<pbest1(j)p1(j,:) = x1(j,:);%变量pbest1(j) = func_obj(x1(j,:));endif pbest1(j)<gbest1g1 = p1(j,:);%变量gbest1 = pbest1(j);end…

关于领域驱动设计,大家都理解错了

翻遍整个互联网,我发现,关于领域驱动设计,大家都**理解错了**。 今天,我们尝试通过一篇文章的篇幅,给大家展示一个完全不同的视角,把“领域驱动设计”这六个字解释清楚。 ## 领域驱动设计学习资料现状领域驱动设计的概念提出已经有20年的时间了,整个互联网充斥着大量书籍…