Nextcloud 安装记录(Snap版)
编辑我曾多次尝试安装 Nextcloud,但最终放弃了。我觉得它太复杂且配置繁琐,遇到的问题难以解决,网上的解答也未能帮助我解决实际问题。因此,我一直使用 Cloudreve 作为个人网盘。Cloudreve的功能强大、配置简单、使用方便,但相比 Nextcloud,功能还有所欠缺。为了支持 Cloudreve 的发展,我购买了捐赠版本。由于我的域名即将过期,经济状况有些紧张,因此我打算重新启用 Nextcloud。这次安装得益于我自身技术的提升,我相信我有能力很好地维护 Nextcloud。此外,随着人工智能技术的发展,我相信我将更快地找到解决问题的方法。
不建议完全没有网络知识和对 PHP 项目运作方式不了解的新手小白安装 Nextcloud,因为一旦遇到问题,可能会很难自行解决。
注意时效性,使用的软件版本:
Windows 10 专业版 22H2 操作系统内部版本 19045.5131
适用于 Linux 的 Windows 子系统 2.3.26
Ubuntu 24.04.1 LTS(wsl2子系统)
Nextcloud 的版本为 30.0.2
freenginx-1.27.0
Nextcloud 的安装分为客户端安装和服务端安装,本文将重点记录服务端安装过程。
我的 Windows 作为一台小型家庭服务器,通过 WSL2 安装 Ubuntu 子系统,并在 Ubuntu 内使用 Nextcloud 服务器的打包版本(snap)进行安装。尽管 Nextcloud 有多种安装方式,并且安装界面都提供了详细的介绍,供用户自由选择,但我选择采用 wsl + ubuntu + snap 的方式主要基于以下几点考虑:
我没有一台独立的 Linux 服务器来部署。
snap 安装方式非常便捷,各个组件之间的配合都经过官方优化。
WSL 可以轻松与 Windows 文件系统交互,便于管理。
nextcloud-snap 支持 Ubuntu,同时 WSL 也支持 Ubuntu。
安装
安装 WSL:略
安装 Ubuntu 子系统:略
安装 nextcloud-snap
参考上文引用的链接,实际非常简单,前提是保证子系统可以通畅连接互联网:
更新服务器:
apt update
安装 snapd 工具:
apt install snapd
安装 Nextcloud:
snap install nextcloud
安装 net-tools:
apt install net-tools
,方便查看子系统 IP 和后续维护
执行完以上四步,我们就可以通过 ifconfig
查看子系统 IP,并在浏览器中访问 Nextcloud 的初始化界面了。
配置记录
各种设置实际上都可以在 Nextcloud 文档中找到,但是文档内容实在太多,让人无从下手,只能水来土掩了。
找到 config.php 文件
我直接使用 find 命令查找,nextcloud 的大部分配置都在这里进行。
find / -name config.php
设置可信地址 trusted_domains
初次安装时只能通过内网IP进行访问。如果需要通过其他IP(如公网IP)或域名进行访问,则需要进行相应设置。需要注意的是,如果访问地址包含端口号,例如 https://nextcloud.abc.com:8888
,则需填写 nextcloud.abc.com:8888
,并配置URL重写规则。
<?php
$CONFIG = array (
//.....................................................
//设置可信地址
'trusted_domains' => array (
0 => '172.27.55.39',
1 => 'nextcloud.abc.com:8888',
),
//URL重写规则
'overwritehost' => 'nextcloud.abc.com:8888',
'overwriteprotocol' => 'https',
'overwritewebroot' => '/',
'overwrite.cli.url' => 'https://nextcloud.abc.com:8888',
//.....................................................
);
设置数据储存位置 datadirectory
默认情况下,数据存储位置位于子系统内部,这可能会给在 Windows 中管理和设置备份服务带来一定困难。然而,通过利用 WSL 子系统的特性,Windows 的所有盘符会自动挂载到 /mnt 目录下,因此我将数据存储位置直接定向到了 Windows 硬盘。
Nextcloud 会自动检测数据目录的权限,以防止恶意程序篡改数据。考虑到 WSL 目录的默认权限较高,我采取了禁用 Nextcloud 权限检测的方案。
<?php
$CONFIG = array (
//.....................................................
//数据存储目录
'datadirectory' => '/mnt/e/nextcloud/data',
//禁用数据目录权限检测
'check_data_directory_permissions' => false,
//.....................................................
);
安装与设置警告
Nextcloud 管理设置的概览页面可以自动检测出需要调整的设置,我们会尽力满足这些要求,因为这直接关系到我们的数据安全。
反向代理标头设置不正确。这会允许攻击者对 Nextcloud 假冒其IP地址并引发安全问题
您的实例上的某些标头设置不正确 - 未设置 Strict-Transport-Security
HTTP 标头(应至少为 15552000
秒)。为了增强安全性,建议启用 HSTS
我是在外层 Nginx 中设置的
location / {
# ....................................
# 启用 HSTS
add_header Strict-Transport-Security "max-age=15552000; includeSubDomains; preload" always;
# ....................................
}
设置上传大小
比如设置成10G
sudo snap set nextcloud php.memory-limit=1024M
sudo snap set nextcloud php.upload-max-filesize=10G
sudo snap set nextcloud php.post-max-size=10G
sudo nextcloud.occ config:system:set max-filesize --value=10G
您在安装过程中未设置默认的国际区号。缺失国际区号的电话号码时将使用默认的国际区号进行验证。要允许无国际区号的电话,请在您的配置文件中添加 “default_phone_region” 设置选项并依照 ISO 3166-1 进行设置。
sudo nextcloud.occ config:system:set default_phone_region --value="CN"
PHP 模块“imagick”没有被启用,尽管已启用了主题程序。为了使收藏图标正常生成,您需要安装并启用这个模块。
根据 Github 上的说法,由于 imagick 存在漏洞,snap 没有安装此依赖,因此我们暂时忽略这个问题。
应用商店无法加载的问题
原因是因为 Nextcloud 的应用商店后台服务器位于国外,国内网络经常无法访问,导致无法加载数据。以下是几种解决方案:
为服务器设置代理,确保网络畅通。
从 Nextcloud 官方应用商店下载离线包,手动部署。
设置国内代理源,或者自行搭建代理源。
自从 xxxx年xx月xx日 xx:xx:xx 日志中存在 n 个错误
可以在 Nextcloud > 管理设置 > 日志
中查看具体错误信息。经过预览,都是网络访问错误。这个问题与应用商店无法连接的问题
类似,只能通过优化网络来解决。如果不需要使用第三方插件或者错误不影响使用,可以直接忽略。
推荐站在巨人的肩膀上,让我们能走得更远
将默认标签页从仪表盘修改为文件
在config.php
修改
'defaultapp' => 'files',
- 0
- 0
-
赞助
支付宝微信 -
分享