网盘存储

Nextcloud自建文件同步共享服务教程-Nextcloud安装,迁移,更换域名

Nextcloud是一个非常优秀的自建网盘存储工具,其功能与Dropbox相近,但Nextcloud免费及开放源代码软件,每个人都可以在自己的服务器上安装并执行,Nextcloud同时有PC、手机APP等多客户端,是个人或者团队自建同步存储服务的理想选择。

Nextcloud的文件存储在一般的目录结构中,并可通过WebDAV访问。Nextcloud用户可以管理日历(使用CalDAV)、联系人(CardDAV),同时Nextcloud还有文本编辑器、书签服务、缩略网址服务、相册、RSS阅读器与文件查看器等。

Nextcloud还可以与其他的各类应用整合,尤其是支持WebDAV,可以当成Lsky Pro兰空图床Trilium免费开源笔记软件等各类应用的存储服务,更多的自建云存储和网盘服务还有:

  1. 六个开源免费对象存储程序收集整理-自建兼容S3云存储协议对象存储
  2. 自建音乐流媒体服务器和私人音乐电台-开源免费的音乐服务程序推荐
  3. 自建个人电影音乐资料库:Plex 安装与使用和Aria2离线下载影音文件

PS:更新记录。

1、很多人都会用不同的浏览器,但是苦于不同的浏览器不能共享浏览器书签以及同步,可以用这个方法解决:Floccus浏览器书签同步工具-Firefox,Chrome,Edge等跨浏览器书签同步。2023.5.7

一、Nextcloud安装方法

网站:

  1. https://nextcloud.com/
  2. https://github.com/nextcloud/server
  3. 专题:NextCloud从入门到精通-自建网盘搭建个人云存储系统

1.1 大硬盘VPS主机

Nextcloud要储存各类资源,占用空间很大,建议使用大硬盘的VPS主机,例如:ServaRICA大硬盘存储VPS主机性能和速度评测,更多的VPS主机查看:VPS主机排行榜单

或者使用独立服务器,请参考:国内外独立服务器/独服整理汇总-国外主要机房独立服务器列表

1.2 配置LNMP环境

Nextcloud可以运行在LAMP或者是LNMP环境上,不过一般推荐LNMP,建议用一键安装包:

  1. Oneinstack安装与配置PHP 8.1和MySQL 8.0-Oneinstack建站新手教程

Oneinstack在创建网站时支持自动添加NextCloud的Nginx规则。

如果使用其他的nginx脚本,需要参考官网的nginx重写规则,更多的教程请查看:Oneinstack从入门到精通宝塔面板从入门到精通

1.3 安装Nextcloud

下载安装包:

  1. https://download.nextcloud.com/server/releases/latest.zip

将安装包下载到服务器的Web目录下,并解压。

wget https://download.nextcloud.com/server/releases/latest.zip

unzip latest.zip

然后将解压后所有的文件移动到根目录下。

mv /data/wwwroot/yun.wzfou.net/nextcloud/* /data/wwwroot/yun.wzfou.net

mv /data/wwwroot/yun.wzfou.net/nextcloud/.* /data/wwwroot/yun.wzfou.net

chown -R www:www /data/wwwroot/yun.wzfou.net

打开域名,现在可以看到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 端口这里记得也要改动
root@xxx.xx.xx.xx 这里指定 S-S-H 远程连接主机的 IP 以及连接登录所使用的用户(root)
/data/wwwroot/b.wzfou.net/data/ 指定传输过来的文件保存在远程主机的哪个位置

扫描导入新的服务器。通过以上方式我们已经将文件全部迁移到了新的服务器上了,但是Nextcloud并不会直接显示这些文件,而是需要我们执行一次导入操作。

首先是进入到你的Nextcloud根目录下:cd /home/www/nextcloud,然后执行命令:

sudo -u www php occ files:scan --all
sudo -u www php occ files:scan --用户名

或者是加上php的路径执行命令:

sudo -u www  /usr/local/php/bin/php occ files:scan --all
sudo -u www  /usr/local/php/bin/php occ files:scan --用户名

六、Nextcloud更换域名

更换域名请调整以下设置:

'trusted_domains' => 
array (
  0 => 'pan.wzfou.com',
),
  'overwrite.cli.url' => 'https://pan.wzfou.com',

七、总结

Nextcloud作为一个个人网盘程序还是相当不错的,有非常多的应用可以安装,免费的PC端和手机APP,同步非常地方便。但是,Nextcloud同步网盘有一个最大的问题就是同步大文件经常出错,这一点没有Seafile强,两者对比:NextCloud与Seafile对比使用-NextCloud各项全能 Seafile优势突出

Nextcloud支持添加第三方的存储作为扩充自身容量,参考:NextCloud挂载腾讯云COS作为外部存储-扩容存储空间方便管理

文章出自:挖站否 https://wzfou.com/nextcloud-setup/,版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。

文章更新于: 2023年5月7日 下午10:42

Qi

关于站长(Qi),2008年开始混迹于免费资源圈中,有幸结识了不少的草根站长。之后自己摸爬滚打潜心学习Web服务器、VPS、域名等,兴趣广泛,杂而不精,但愿将自己经验与心得分享出来与大家共勉。

查看评论