ubuntu 22.04配置个人私有云盘NextCloud

在ubuntu22.04系统上搭建nextcloud个人私有云盘并实现安卓端访问

私有云盘选择

如何搭建自己的私有云盘 - 知乎

现有的云盘很多都开始要会员了,奇奇怪怪的收费还有广告无法忍受,出于成本考虑不太想被再次收割(除非完全没招),个人对于云盘的使用主要还是存取数据,比如一些有助于学习提升的资料以及历史数据记录等等。

网上的数据现在多多少少都会有安全性问题,而当前本地闲置笔记本刚好没有怎么使用,前段时间还搞了个ubuntu系统,而个人对于后续可能会有配置本地服务器的打算(比如搞个群晖NAS),可以暂时用ubuntu练手。

当前主流的私有云盘有如下几个(摘抄自上述知乎链接)

AList:

演示地址:https://alist.nn.ci

下载地址:https://github.com/alist-org/alist-web

Nextcloud

官网地址:https://nextcloud.com/

下载地址:https://nextcloud.com/install/#instructions-server

Cloudreve

官网:https://cloudreve.org

ownCloud

了解更多:http://www.iplaysoft.com/owncloud.html

官网地址:https://owncloud.org/

下载地址:https://owncloud.org/install/#edition

Seafile

官网:https://www.seafile.com/home/

DzzOffice-大桌子办公

官网地址:http://www.dzzoffice.com/

演示地址:http://dev.dzzoffice.com/

下载地址:http://www.dzzoffice.com/download.html

可道云

官网地址:http://www.kalcaddle.com/

演示地址:http://demo.kalcaddle.com/(登录用户名与密码都是demo)

下载地址:http://www.kalcaddle.com/download.html

还有很多没完全抄下来,就这样吧,暂时先选了nextcloud来配置,原因就是在B站刚好刷到了

https://www.bilibili.com/video/BV1ac411w7Kg

NextCloud在ubuntu系统的安装和搭建

这里是通过snap来安装nextcloud

安装snap

1
sudo apt-get install snapd

安装snapcraft

1
sudo apt-get install snapcraft

通过snap安装nextcloud

1
sudo snap install nextcloud

查看snap历史修改确认nextcloud是否安装成功

1
snap changes nextcloud

修改nextcloud端口(可选)

1
sudo snap set nextcloud ports.http=60001

启动nextcloud

1
sudo snap start nextcloud

此时可以在浏览器上访问127.0.0.1:60001来确认nextcloud开启状态,默认端口是80,这里修改成60001

首次进入之后需要设置管理员账户和密码(太过简单不予演示),设置完毕后就可以本地使用了。

内网穿透实现外网访问nextcloud

我这里使用的是樱花穿透(sakura frp),之前搭饥荒服务器有用到,继续复用。 ubuntu这边的配置需要根据实际情况先搭建sakura frp的服务

SakuraFrp 启动器安装 / 使用指南 | SakuraFrp 帮助文档

根据教程一步一步来,确保“远程管理”可以正常访问即可。

创建隧道

这里没有使用http或者https来创建,使用了TCP来创建隧道,设置好本地端口号(我这里是60001),然后同步打开自动https,点击保存即可创建完成

打开隧道

进入“远程管理”界面,刷新隧道列表,然后把对应隧道打开即可,后续就可以通过特定地址+端口直接访问nextcloud

nextcloud设置http访问

在内网穿透配置完毕后,通过内网穿透地址和端口访问时,会提示“通过不被信任的域名访问”。

实际按照参考视频的做法用如下命令行尝试,并不能解决问题:

1
sudo nextcloud.occ config:system:set trusted_domains 1 --value=*.*.*.*

执行上述命令时候,由于本地使用的是zsh而非bash,报了如下错误

1
zsh: no matches found: --value=*.*.*.*

后续是参考 https://blog.51cto.com/u_14355665/6099385 才ok的

实际修改内容为

1
2
3
4
5
vim ~/.zshrc
#最后一行添加如下内容
unsetopt nomatch
#重新source
source ~/.zshrc

不被信任这个问题通过百度使用类似下面的操作解决了。

Nextcloud允许不被信任的域访问 取消 trusted domains - 极速热度 - 博客园

更改存储位置

默认存储路径/var/snap/nextcloud/common/nextcloud/data 实际是在根目录下的,但本地ubuntu没有给根目录分配太多空间,所以尝试修改存储目录,改变多次使用各种方法都失败了,网上的资料是一个抄一个,官方的文档里面内容也没有snap相关的。算了,后续打算换其他的私有云盘。

试了很多方案,终于找到可靠信息。

Changing data directory location with snap installation procedures - ℹ️ Support - Nextcloud community

move-snap-nextcloud

(同样的引用方式,网页此图片显示不出来本地可以,必须写成post/xxxx/xxx.png的形式网页才会显示, 相对路径无法显示)

这里是说,通过snap命令安装的软件是没有权限访问外部目录的,之前ubuntu预留了将近60GB的空间,在一通操作下把对应存储空间挂在到了/ext-data目录下,不论怎么操作nextcloud都是无法访问的。所以问题出在snap这里而不是nextcloud这里。

根据官网的描述和操作,执行之后还是报错,一度陷入绝望。 Change data directory to use another disk partition · nextcloud-snap/nextcloud-snap Wiki

实际上个人多个操作先后报错如下:

1
2
3
4
5
Internal Server Error

The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.
1
您的数据目录无效。 确保数据目录的根目录中有一个名为".ncdata"的文件。它应该包含以下内容:"# Nextcloud data directory" 无法创建 “data” 目录 通常可以为 Web 服务器授予对根目录的写入权限来修复这个问题。查看:[https://docs.nextcloud.com/server/30/go.php?to=admin-dir_permissions](https://docs.nextcloud.com/server/30/go.php?to=admin-dir_permissions)

ncdata这个网上搜到的大多是".ocdata"的东西,其实是owncloud的处理方式,对于新版本的nextcloud无用。

中途尝试用docker来配置,也是失败了

后面尝试把挂载位置从/ext-data换成/media/ext-data,修改/var/snap/nextcloud/current/nextcloud/config/config.php中的“datadirectory”,

1
'datadirectory' => '/media/ext-data/nextcloud/data',

把之前建立的data目录下的存储文件拷贝到data中,根据提示新增.ncdata文件,并添加相应内容:

1
2
cd /media/ext-data/nextcloud/data
sudo vim .ncdata
1
2
.ncdata内容直接按如下内容写
# Nextcloud data directory

随后重新执行如下命令:

1
2
sudo chown -R root:root /media/ext-data/nextcloud/data
sudo chmod 0770 /media/ext-data/nextcloud/data

然后执行如下命令,

1
sudo snap connect nextcloud:removable-media

重启nextcloud

1
2
3
sudo snap restart nextcloud.php-fpm
或者
sudo snap start nextcloud

访问127.0.0.1:60001测试,完美进入

使用app同步访问nextcloud

nextcloud的安卓版本链接如下: http://nextcloud.apks.software/

这里我下载了Nextcloud 3.29.2才能使用

其他参考

docker安装nextcloud的方法 Nextcloud个人云盘搭建与基本使用-CSDN博客


近期准备把原来的动态自动部署暂停,统一转到github的blog上。

评论区加载中...
本博客已稳定运行 小时 分钟
共发表 3 篇文章 · 总计 8.40 k 字
本站总访问量
使用 Hugo 构建
主题 StackJimmy 设计