使用NextCloud搭建私有网络云盘并支持Office文档在线预览编辑以及文件同步

B站关注「」

设为「特别关注」,每天带你玩转网络安全运维、应用开发、物联网IOT学习!

本章目录:

  • 0x00 前言简述

  • 0x01 安装实践

    • 1.手动安装

    • 2.Docker安装 (推荐)

    • 3.Snap安装

  • 0x02 基础配置

    • 文件加密配置

    • 在线文档配置

    • 离线安装应用

    • 手动上传文件同步

  • 0x03 基础使用

    • 组件(Groupware)

    • OCC 命令

  • 0x04 入坑解决

    • 问题1.需要修复Nextcloud数据库

    • 问题2.nextcloud账号密码忘记

    • 问题3.snap安装nextcloud所遇问题

    • 问题4.NextCloud的MySQL的binlog文件过大造成的监控报警

作者: WeiyiGeek

原文地址:https://blog.weiyigeek.top/2020/5-22-100.html

0x00 前言简述

描述:由于个人家里的NAS以及公司团队对私有网盘的进行日常工作文件同步以及协同办公的需求,所以有了这篇文章,讲解记录从选项到安装以及同步使用等相关操作;

最近这几年国内的网盘市场,如今只剩下百度网盘、腾讯网盘了,虽然国内还有一些稳定的网盘但是往往针对于企业对于个人来说不划算;同时在国外也有一些稳定的网盘,但是国内访问并不友好,如 OneDrive、DropBox、Google Drive 等;

此时私有云和 NAS 这种完全掌握在自己手中的云端存储方案就体现其优势了,下文主要介绍利用NextCloud快速搭建个人专属的私有云同步网盘;

私有云同步网盘的优势与不足:
1.优势

  • 私密,自己全权管理所有文件;

  • 稳定,不存在服务商关闭网盘服务的问题;

  • 高速,直链下载,不限速;

  • 功能丰富,可安装插件实现各种云端功能。

2.不足

  • 需要定期进行维护备份

  • 需要用硬件设备的支持

  • 对于VPS这种存储容量小的,不适合做仓库盘,建议NAS或者本地服务器中搭建;

不用您问我先来回答了,这么多网盘为何偏偏用NextCloud?
答:自建网盘方案选择,适合个人和企业使用,基础版免费都是成熟方案,主体功能上大同小异,且都支持在线查看/播放文件、插件扩展等功能。
下面一张谷歌趋势图可以看见当前开源网盘的热度情况;

NextCloud简述
描述:Nextcloud是一个开源、免费、专业的私有云存储项目,他可以帮您简单快速在个人,公司电脑、服务器甚至是树莓派等设备上架设一套属于自己或者团队专属的云同步网盘,所以它是一款开源网盘的绝佳解决方案;

版本说明:

  • Home 家庭版本 (免费试用即社区版本)

  • Enterprises 企业版本

特点:

  • Nextcloud跨平台支持微软 Windows、macOS 和 Linux 的客户端应用程序,以及适用于 Android 和 apple iOS 操作系统的移动客户端下载地址。

  • Nextcloud文件提供了一个内置的,具有强大的协作分享功能和桌面、移动和web界面以及WebDAV形式访问。

  • Nextcloud群件集成了和其他生产力特性,帮助团队更快、更容易地按照您的条件完成工作。

  • Nextcloud Talk通过集成的屏幕共享和SIP集成,通过浏览器和移动接口提供现场、私人音频/视频会议和文本聊天()。

  • Nextcloud上的文件存储在一般的目录结构中,并可透过WebDAV访问。

  • Nextcloud可以透过OpenID或者LDAP来实现用户群组或组群间的读写权限调整,以达到分享文件的目的和利用第三方平台的OAuth2进行接入;

  • Nextcloud上用户可以使用基于浏览器文本编辑器、书签服务、缩放网址服务、相册以及RSS阅读器与文本查看器;

  • Nextcloud具有良好的扩展性,可以将文件轻松连线到DropBox、Google云端与Amazon S3中;

Tips:

  • Nextcloud 扩展应用安装(可离线安装):https://apps.nextcloud.com

0x01 安装实践

NextCloud安装所需组件;

NextCloud安装方式大约有三种:

  • 手动安装

  • 脚本安装

  • Docker安装(推荐)|Snap安装

1.手动安装

环境准备::

Step1.自行关闭或放行防火墙和selinux规则

Step2.安装wlnmp一键安装包源与EPEL源

Step3.基础lnmp环境安装与php依赖安装

Step4.Nginx配置
建议使用https,我这里为了方便就直接使用http方式了(请在以下两个配置文件中任选其一),如果你想使用https,请自行申请证书和生成赫尔曼密钥。

  • http配置文件:()

  • https配置文件:请删除原有的/usr/local/nginx/conf/vhost/demo.conf内容,将以下内容复制进来,并替换server_name的地址!

Step5.配置php-fpm.conf与启用php-opcache

Step6.重启nginx/php-fpm/mysql服务

Step7.配置mysql建立Nextcloud的数据库与数据库账号;

Step8.下载与安装nextcloud
官方下载: 速度确实感人

Step9.安装与配置Nextcloud
访问http://SERVER_NAME,请选择MySQL/MariaDB数据库,默认会在网站根目录下创建一个data目录用来存放数据,该目录可根据情况进行更改,我这里保持默认状态进行安装!

Step10.如果完成上一步基本都可以正常使用nextcloud了,如果不行请查看错误日志并解决,但是往往为了提升使用体验,我们需要对其配置内存缓存;

Nextcloud官方提供了几种缓存配置方案:

  • 如果你是小型/私人家庭用途,可以仅使用APCu进行缓存。

  • 如果你是用于公司集群用途,可以使用APCu+redis方式进行缓存。

  • memcached缓存方案,它不适合与事务性文件锁定一起使用(关于事务性文件锁定可以查看官方文档,因为它不存储锁,而且数据可以随时从缓存中消失。

因此官方建议的, 对于Redis和APCu内存缓存的说明:APCu在本地缓存中比Redis更快。如果您有足够的内存, 请使用APCu进行内存缓存,并使用Redis进行文件锁定。如果内存不足,请同时使用Redis。

(1)最佳缓存配置APCu+Redis(推荐): 前面我们已经安装了APCu+Redis模块扩展

(2) 纯Redis作为缓存与仅使用APCu作为缓存对比

(3) 使用memcached作为缓存:APC用于本地缓存,将memcached作为分布式缓存

2.Docker安装 (推荐)

描述:此处推荐采用Docker进行安装 NextCloud 网盘相关依赖服务。

步骤 01.Docker 环境安装

步骤 02.安装Docker版MySQL与Nextcloud以及onlyoffice在线编辑插件

步骤 03.安装初始化访问 宿主机IP:80 进行NextCloud初始化相关配置,即管理员账号密码,以及nextcloud数据库连接相关设置。

步骤 04.安装配置完成后我们还需一些常规配置。

  • 从商城仓库中下载onlyoffice连接插件,Nextcloud与其对应版本如下 (https://apps.nextcloud.com/apps/onlyoffice):

  • 您的安装没有设置默认的电话区域。这是在没有国家代码的情况下验证配置文件设置中的电话号码所必需的。如果号码没有国家代码,请添加“默认电话区域”,并加上希望使用的区域对应的ISO 3166-1代码。

  • 此实例中的 php-imagick 模块不支持 SVG。为了获得更好的兼容性,建议安装它。

3.Snap安装

描述:什么是Snap?
答:它的安装包扩展名是.snap类似于一个容器,完全独立于系统,它包含一个应用程序需要用到的所有文件和库(Snap包含一个私有的root文件系统里面包含依赖的软件包),他们安装在独立的目录中且各个应用之间相互隔离,互不影响,而且安装快捷简单,运行容易管理;主要支持的主流发行版Ubuntu和Debian;

Snap安装的优缺点:

  • 优点:安装简单、稳定、自动升级以及自带配置环境无需自行配置;

  • 缺点:配置不灵活、最新版本的NextCloud可能不兼容以前的插件;

特别说明:建议国外的VPS采用此种方式安装,因为国内速度真的感人;

安装环境&版本说明:

基础流程:

如下:您只需要输入创建的管理员及密码就可以使用了

专有命令:

基础设置:

  • 使用SSL证书加密Nextcloud,执行以下命令可以从申请证书,申请成功后将重启容器内的Apache实例以立即实施SSL

  • 通过snap安装的nextcloud目录与数据位置:

Tips:

  • 相关snap管理nextcloud命令参考地址

  • 通过snap安装的Nextcloud备份可以将上述打包,然后可以在另外一台新安装的Nextcloud将上述解压包解压到相同路径覆盖即可;

0x02 基础配置

文件加密配置

描述:可以通过Nextcloud后台直接开启服务端加密当然也可以通过occ命令行进行开启Nextcloud的服务端加密功能。

基础操作:

在线文档配置

描述:我们可以在Nextcloud像Office软件一样编辑文档、表格、以及PPT;

环境说明&安装:

设置流程:
Step1.管理员登陆后转到应用(·)然后找到并点击  ->> 之后下载插件即可(

Step2.安装启用后,在进行相应的配置,需要继续输入Document Service 服务器IP和端口(http://10.10.10.245:9001)

Step3.至此在线文档编辑功能完成,通过可以在分享文档文件设置可读、可写等;

Step4.补充自定义中文字体添加,下载字体将解压得到*.tff文件,然后用scp工具把字体文件上传到

注意事项:

  • 如果当前nextcloud启用的https,此时onlyoffice也必须采用https否则设置连接失败;

离线安装应用

描述:当您在服务器中下载应用时候,常常由于网络问题下载到一半的时候突然就失败了,类似如下(

流程步骤:
Step1.下载应用从https://apps.nextcloud.com/ 网站搜寻您要下载的nextcloud应用

Step2.找到下载链接下载对应版本即可,然后上传到nextcloud安装的服务器上();

Step3.解压文件并移动至目录(snap环境,原版是apps)

Step4.之后您将会在应用中看见安装的

Step4.采用安装的应用进行打开docx文档

手动上传文件同步

描述: 在上传文件时选择了直接SFTP上传,遂记录需要在NC中同步数据库的代码:

同步以后,还需要递归修改文件夹权限,否则无法再NextCloud中删除文件。

0x03 基础使用

描述:用户使用官方文档:https://docs.nextcloud.com/server/latest/user_manual/index.html

组件(Groupware)

Nextcloud Groupware 是一组应用程序,由邮件客户端 (IMAP/POP3) 和日历和联系人服务器 (CalDAV/CardDAV) 组成,其中包含相应的 Web 界面。

例如:与Windows 10中 的日期同步

  • 在浏览器中,导航到下一个云日历应用。在”设置和导入”下,将”iOS/macOS CalDAV 地址”复制到剪贴板中。

  • 启动 Windows 10 日历应用。然后,单击设置图标(齿轮图标)并选择”管理帐户”。

  • 单击”添加帐户”并选择”iCloud”。

  • 输入电子邮件、用户名和密码。这些信息都不得有效,所有信息都将在后续步骤中更改。

  • 单击”完成”。应显示一条消息,指示已成功保存设置。

  • 在”管理帐户”菜单中,单击以前步骤中创建的 iCloud 帐户,然后选择”更改设置”。然后,单击”更改邮箱同步设置”。

  • 滚动到对话框的底部,选择”高级邮箱设置”。将您的 CalDAV URL 粘贴在标记为”日历服务器 (CalDAV)”的字段中。

  • 单击”完成”。在相应字段中输入您的 Nextcloud 用户名和密码,并将帐户名称更改为您喜欢的任何帐户名称(例如”下一个云日历”)。单击”保存”。

  • 执行所有这些步骤后,下一个云日历应同步。如果没有,请检查您的用户名和密码。否则,请重复这些步骤。

如何设置参考reddit用户帖子:
https://www.**********/r/Nextcloud/comments/5rcypb/using_the_windows_10_calendar_application_with/

OCC 命令

描述:occ命令是ownCloud/Nextcloud的命令行界面。您可以使用occ执行许多常见的服务器操作,例如安装和升级ownCloud/Nextcloud,管理用户,加密,密码,LDAP设置等。

基础实例:

0x04 入坑解决

问题1.需要修复Nextcloud数据库

描述:如果不执行以上命令,可能会在Nextcloud中出现安全警告,看到以下警告内容!
错误信息:

错误原因:数据库中的一些列由于进行长整型转换而缺失,由于在较大的数据表重改变列类型会耗费一些时间,因此程序没有自动对其更改,所以此时我们需要修复丢失的索引,索引修复后会大大提高相应表的查询速度。
解决方法:

问题2.nextcloud账号密码忘记

描述:可以采用occ命令进行修改用户的账号密码;

问题3.snap安装nextcloud所遇问题

  • 错误信息:
    `

  • 问题原因:现在用snap安装的docker有一个bug,不能挂在/home之外的地方比如/data下面

  • 解决版办法

  • 参考连接:https://github.com/Microsoft/vscode-docker/issues/749

问题4.NextCloud的MySQL的binlog文件过大造成的监控报警

原文地址:https://blog.weiyigeek.top/2020/5-22-100.html

本文至此完毕,更多技术文章,尽情期待下一章节!

已发布的相关历史文章(点击即可进入)

欢迎各位志同道合的朋友一起学习交流,如文章有误请在下方留下您宝贵的经验知识,个人邮箱地址【master#weiyigeek.top】或者 个人公众号【WeiyiGeek】联系我。

更多文章来源于【WeiyiGeek Blog – 为了能到远方,脚下的每一步都不能少】 个人博客。

个人主页: 【 https://weiyigeek.top 】

博客地址: 【 https://blog.weiyigeek.top 】

专栏书写不易,如果您觉得这个专栏还不错的,请给这篇专栏【点个赞、投个币、收个藏、关个注,转个发、留个言】,这将对我的肯定,谢谢!。

  • echo  “【点个赞】,动动你那粗壮的拇指或者芊芊玉手,亲!”

  • printf(“%s”, “【投个币】,万水千山总是情,投个硬币行不行,亲!”)

  • fmt.Printf(“【收个藏】,阅后即焚不吃灰,亲!”)

  • System.out.println(“【关个注】,后续浏览查看不迷路哟,亲!”)

  • console.info(“【转个发】,让更多的志同道合的朋友一起学习交流,亲!”)

  • cout << “【留个言】,文章写得好不好、有没有错误,一定要留言哟,亲! ” << endl;

 更多网络安全、系统运维、应用开发、全栈文章,尽在【个人博客 – https://blog.weiyigeek.top】站点,谢谢支持!

资源下载: