本篇文章将介绍如何在树莓派( Raspberry Pi )上搭建 Nextcloud 云盘,并使其可以外网访问,将其映射到一个二级域名上。另外,针对遇到的几种问题提出解决方案。
系列文章:
本篇文章的操作是建立在之前 这篇文章 之上的,也就是要确保你的树莓派上安装了 LAMP 环境。外网访问使用的是Frp,可以参考 这篇文章。
维基百科上对 Nextcloud 的介绍:
Nextcloud是一套用于创建网络硬盘的客户端-服务器软件。其功能与Dropbox相近,但Nextcloud是自由及开放源代码软件,每个人都可以在私人服务器上安装并运行它。
与Dropbox等专有服务相比,Nextcloud的开放架构让用户可以利用应用程序的方式在服务器上新增额外的功能,并让用户可以完全掌控自己的资料。
简单来说,就是一个可以搭建在自己服务器上的云盘。有点类似于国内的坚果云,国外的 Dropbox,OneDrive 等等。与之不同的是,Nextcloud 是开源的,虽然也有付费的版本,但免费版个人甚至小型企业已经完全够用。而且亲测可以在我们的「树莓派4B服务器」上完美运行。并且它有全平台的客户端,只要下载它的客户端,不论你使用 Windows,Linux,IOS 抑或是 Andriod,都可以完美实现文件同步和共享。更多惊喜功能,比如日历,ToDo,邮件,音乐,……,还可以去它的 App Store 寻找拓展应用实现。
话不多说,直接开始干活。实际上 Nextcloud 的安装也是简单的一批,我们一步一步来:
去官网上下载Nextcloud的 Server Pakage :https://nextcloud.com/install/#instructions-server
有三种安装方式,我们选择第一种 Archive File,这里可以用 wget
工具直接下载到服务器上,也可以先下载到本地,再用 Filezilla 等软件上传至服务器。建议先上传再解压,速度会快很多。
将压缩包放置至路径/var/www/
后,使用如下命令解压:
unzip nextcloud-20.0.6.zip -d /var/www/
注意要将压缩包名字改为自己下载的对应的名字(就是版本号不同)。
此时你的 /var/www/
路径下应该就有了一个名为 nextcloud
的文件夹,之后更改一下文件夹的权限,让 Apache 成为该文件夹的所有者:
sudo chown -R www-data:www-data /var/www/nextcloud
sudo chmod -R 755 /var/www/nextcloud
第一步完成。
网上的教程多用命令行代码新建Nextcloud数据库,这里介绍一种更「人性化」的方式,用到了 这篇文章 中安装的 PhpMyAdmin 。以我的树莓派内网IP为例,假如IP为 192.168.0.107 。只要在浏览器中输入 192.168.0.107/phpmyadmin
并登录(用户名为 root
,密码为安装 PhpMyAdmin 时设置的密码),就可以访问如下网页:
点击上面一栏中的数据库,然后新建一个名为nextcloud的数据库(排序规则不用管,名字也可以随便取,但要和之后的操作对应):
之后点上面一栏中的账户,新建一个名为nextcloud_user的账户,并设置密码,牢记密码:
只需要设置图中所示的几个部分,其他地方不用管,直接翻到最低下点执行。之后修改权限:
大功告成,这一部分就结束了。
如果想用命令行完成操作的话,我在 这篇文章 的 MariaDB 部分的最后有介绍。
接下来转到 /etc/apache2/sites-available/
路径下,新建一个配置文件:
sudo vim cloud.conf
这部分配置参考 这篇文章 ,这里面有关于这部分详细的介绍,这里就不再赘述。
要想在外网访问你的云盘,可以用Frp加阿里云服务器的方式,参考 这篇文章,这里也不再赘述。
做完上面的工作后,就可以通过域名访问你的 Nextcloud 了,第一次访问时,它还会进行一些安装设置操作,需要你填入刚刚设置好的数据库信息,按照你设置的信息填就好了,没什么难度。
所有的都设置好后,Enjoy it !!!
安装完Nextcloud后,打开 设置 页面里的 概览 选项,其中有 安全和设置警告 这一项。可能会提出一些问题。我遇到的问题有:
有些应用程序目录是由与 Web 服务器不同的用户拥有的。如果应用程序是手动安装的,情况可能是这样的。检查以下应用程序目录的权限
解决方案:将列出的文件夹用下面的命令更改权限:
sudo chown -R www-data:www-data /var/www/nextcloud/
PHP 内存限制低于建议值 512MB。
解决方案:更改 ./config/
目录下的 config.php
文件:
memory_limit = 512M
保存退出,然后重启 Apache
该实例缺失了一些推荐的 PHP 模块。为提高性能和兼容性,我们强烈建议安装它们。
解决方案:安装这些模块,比如列出的是缺失 gmp,就用如下命令:
sudo apt-get install php7.4-gmp
注意把php版本号改为自己的。
内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。
解决方案:安装 apcu
模块:
sudo apt-get install php7.4-apcu
然后修改 config.php
文件,在最后加一行:
'memcache.local' => '\OC\Memcache\APCu',
Nextcloud-维基百科
Nextcloud admin manual | installation and server configuration