Nextcloud是一个非常优秀的自建网盘存储工具,其功能与Dropbox相近,但Nextcloud免费及开放源代码软件,每个人都可以在自己的服务器上安装并执行,Nextcloud同时有PC、手机APP等多客户端,是个人或者团队自建同步存储服务的理想选择。
Nextcloud的文件存储在一般的目录结构中,并可通过WebDAV访问。Nextcloud用户可以管理日历(使用CalDAV)、联系人(CardDAV),同时Nextcloud还有文本编辑器、书签服务、缩略网址服务、相册、RSS阅读器与文件查看器等。
Nextcloud还可以与其他的各类应用整合,尤其是支持WebDAV,可以当成Lsky Pro兰空图床、Trilium免费开源笔记软件等各类应用的存储服务,更多的自建云存
一、Nextcloud安装方法
网站:
- https://nextcloud.com/
- https://github.com/nextcloud/server
- 专题:NextCloud从入门到精通-自建网盘搭建个人云存储系统
1.1 大硬盘VPS主机
Nextcloud要储存各类资源,占用空间很大,建议使用大硬盘的VPS主机。
1.2 配置LNMP环境
Nextcloud可以运行在LAMP或者是LNMP环境上,不过一般推荐LNMP,建议用一键安装包:
Oneinstack在创建网站时支持自动添加NextCloud的Nginx规则。
如果使用其他的nginx脚本,需要参考官网的nginx重写规则,更多的教程请查看:Oneinstack从入门到精通,宝塔面板从入门到精通。
1.3 安装Nextcloud
下载安装包:
- https://download.nextcloud.com/server/releases/latest.zip
将安装包下载到服务器的Web目录下,并解压。
然后将解压后所有的文件移动到根目录下。
打开域名,现在可以看到Nextcloud的安装页面了。
然后就是填写Mysql数据库了。
完成安装后,你就可以看到Nextcloud界面了。
二、Nextcloud网页端使用
Nextcloud网页端可以很方便地查看图片。
点击图片可以幻灯片观看。
Nextcloud也可以直接观看视频。
Nextcloud的文件管理存储。
Nextcloud网页端支持文件共享。
Nextcloud还提供了非常多的应用,你可以直接在线安装相关的应用。
三、Nextcloud客户端使用
Nextcloud有免费的PC端和手机APP,启动Nextcloud客户端。
然后填写Nextcloud服务器地址。
完成验证后,就可以在PC端使用Nextcloud同步文件了。
建议在配置Nextcloud客户端时选择远程虚拟文件,即不要将服务器的文件全部下载到本地。
当你需要将文件下载到本地时,你仅需要右击该文件,选择将文件下载到本地,这样可以节省下载时间。
当然,如果你不喜欢这种方式,可以Nextcloud客户端禁用虚拟文件支持。
四、Nextcloud相关问题
4.1 500错误
NextCloud出现500内部服务器错误-打开settings/admin/serverinfo就提示500错误。
原因是php默认禁用shell_exec,将shell_exec这个函数解封即可:
打开php.ini,搜索disable_functions
把shell_exec删除即可,保存。
重启PHP。
参考:https://wzfou.com/question/107699/
4.2 gmp扩展
Oneinstack和LNMP安装gmp扩展教程:https://wzfou.com/question/107694/
4.3 Nginx配置
如果出现以下错误:
HTTP的请求头 “Strict-Transport-Security” 未设置为至少 “15552000” 秒. 为了提高安全性,建议参照security tips 中的说明启用HSTS.
HTTP 头 “Referrer-Policy” 未设置成 “no-referrer”,”no-referrer-when-downgrade”,”strict-origin”,”strict-origin-when-cross-origin” 或 “same-origin”。这会泄露更多的信息。请查阅 W3C 建议。
打开你的Nginx配置文件,添加以下规则:
add_header Strict-Transport-Security max-age=15768000;
add_header X-Frame-Options ‘SAMEORIGIN’;
add_header Referrer-Policy “no-referrer”;
重启PHP和Nginx,刷新一下,你就可以看到NextCloud配置完成了。
4.4 PHP缓存
为了提供NextCloud性能,官方建议使用缓存,NextCloud添加Redis缓存。修改程序目录下的config目录中的config.php
文件,在配置文件中添加如下:
‘memcache.local’ => ‘\OC\Memcache\Redis’,
‘redis’ => array(
‘host’ => ‘localhost’,
‘port’ => 6379,
),
‘memcache.locking’ => ‘\OC\Memcache\Redis’,
五、Nextcloud迁移搬家
5.1 整体搬家
Nextcloud整体搬家的话,就是将Web目录下的所有的文件打包上传到新的服务器上,将Mysql数据库文件全部打包上传到新的服务器上,然后启用即可。
然后修改nextcloud目录下的conf目录下的配置文件:
<?php $CONFIG = array ( 'instanceid' => 'ocxzu1f45435345', 'passwordsalt' => '1RswK232343888weasdfasdfafdC', 'secret' => 'w2asdf234rdfa999dadfadx','trusted_domains' => array ( 0 => '4.3.2.1:1234', ), 'datadirectory' => '/www/wwwroot/nextcloud/data', 'dbtype' => 'mysql', 'version' => '22.0.0.2', 'overwrite.cli.url' => 'http://40.3.2.1:1234', 'dbname' => 'nextcloud', 'dbhost' => '127.0.0.1', 'dbport' => '', 'dbtableprefix' => 'oc_', 'dbuser' => 'nextcloud', 'dbpassword' => 'T8P$Sdv57#%asd', 'installed' => true, );
要修改的地方如下
array:你的nextcloud服务器地址
datadirectory:data目录,就是你解压后的目录
overwrite.cli.url:网址
dbname:新服务器上nextcloud的数据库名称
dbuser:数据库帐号
dbpassword:数据库密码
5.2 文件迁移
对于个人用的Nextcloud,其实完全可以只迁移文件,在新的服务器上安装全新的NextCloud,然后将原来的服务器的文件迁移过来导入即可。这里就不得不提命令:rsync
首先是安装:
apt install rsync
使用以下命令就可以将旧服务器上的文件完整地复制传输到新的服务器上了:
rsync -avut --progress /aanext/ root@xxx.xxx.xxx.xxx:/data/wwwroot/yun.wzfou.net/data/ -e "ssh -p 22"
相关释义:
-a 命令的意思是递归传输,在即将子文件夹和文件全部传输
-av 里的 v 指的是传输过程要输出详细信息
-t 的意思是传输要保持文件时间信息不变
-e ‘ssh -p 22’ 的意思是通过 S-S-H 方式远程连接某主机的 22 端口,如果你的主机改了 S-S-H 端口这里记得也要改动
[email protected] 这里指定 S-S-H 远程连接主机的 IP 以及连接登录所使用的用户(root)
/data/wwwroot/b.wzfou.net/data/ 指定传输过来的文件保存在远程主机的哪个位置
扫描导入新的服务器。通过以上方式我们已经将文件全部迁移到了新的服务器上了,但是Nextcloud并不会直接显示这些文件,而是需要我们执行一次导入操作。
首先是进入到你的Nextcloud根目录下:cd /home/www/nextcloud
,然后执行命令:
或者是加上php的路径执行命令:
六、Nextcloud更换域名
更换域名请调整以下设置:
七、总结
Nextcloud作为一个个人网盘程序还是相当不错的,有非常多的应用可以安装,免费的PC端和手机APP,同步非常地方便。但是,Nextcloud同步网盘有一个最大的问题就是同步大文件经常出错,这一点没有Seafile强,两者对比:NextCloud与Seafile对比使用-NextCloud各项全能 Seafile优势突出。
Nextcloud支持添加第三方的存储作为扩充自身容量,参考:NextCloud挂载腾讯云COS作为外部存储-扩容存储空间方便管理。