NextCloud作为一个开源免费的云存储网盘项目,任何人都可以自由的获取NextCloud 程序,在家庭或公司构建私有且免费的网络硬盘。它是完全由你用户控制的私有、安全且功能完整的文件同步与共享解决方案,一经推出就广受好评。
之前我也分享了不少NextCloud安装部署教程,最让人感兴趣的就是NextCloud搭配Aria2,来实现离线下载。因为NextCloud自带了音乐与视频播放功能,且支持WebDAV等,完全可以基于NextCloud打造一个云存储平台或者云盘。
NextCloud有一个挂载外部存储的功能,它可以允许你将第三方存储、本地硬盘等作为存储硬盘挂载在服务器上,作为NextCloud的存储服务。但是很多人在操作过程中会出现权限问题,如无法读取文件或者删除文件。
本篇文章就来分享一下在Oneinstack上手动安装部署NextCloud并添加外部存储,同时再分享一个NextCloud离线下载插件ocDownloader,它可以结合Aria2实现Http、FTP和BT种子离线下载,同时又可以使用NextCloud管理下载文件,完美解决了文件权限的问题。
更多的关于离线下载的方法还有工具,你可以试试这些:
- Windows和Linux安装使用Aria2-实现离线下载资源和在线管理文件播放视频
- Nextcloud离线下载搭建方法-整合Aria2和AriaNg、Aria2 WebUI实现离线下载
- 树莓派Raspberry Pi安装NextCloud教程-自建家庭私有云局域网共享
PS:2018年3月31日更新,如果想要搭建一个可以在线共享播放的影音网盘中心可以试试:Plex完美个人影音云盘搭建教程-Plex Media Server安装与使用方法。
一、Oneinstack上安装NextCloud
NextCloud官网:
- 官网:https://nextcloud.com/
- 插件:https://apps.nextcloud.com/apps/ocdownloader
- 项目:https://github.com/e-alfred/ocdownloader
OneinStack安装还是挺简单的,由于我们要在Oneinstack上跑NextCloud,所以在安装的过程中请选择LAMP模式,同时建议将相关的组件都选择安装上。参考之前的文章:OneinStack一键安装脚本-轻松部署Let’s Encrypt证书配置Https站点。
1.1 NextCloud安装
打开浏览器进入到NextCloud安装界面,如果你出现以下错误提示:
PHP 被设置为移除内联块, 这将导致多个核心应用无法访问.
这可能由缓存/加速器导致的, 例如 Zend OPcache 或 eAccelerator.
如下图:
解决方法:修改php.ini
中Opcache的参数进行修改,如果是Oneinstack的话需要在/usr/local/php/etc/php.d/ext-opcache.ini
中修改。找到此代码并改成:opcache.save_comments=1
,因为默认是0,改完重启php-fpm就行。
1.2 NextCloud配置
安装好了NextCloud后,进入到设置中一般地会提示几个安全问题:
对于“PHP 模块 ‘fileinfo’ 缺失. 我们强烈建议启用此模块以便在 MIME 类型检测时获得最准确的结果.”可以用执行:./addons.sh来安装fileinfo模块即可。
对于“HTTP 请求头 “Strict-Transport-Security” 没有配置为至少 “15552000” 秒. 出于增强安全性考虑, 我们推荐按照安全提示中的说明启用 HSTS.”,进入到/usr/local/apache/conf/vhost,修改xxx.conf。
加入以下代码即可。
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
对于“内存缓存未配置. 如果可用, 请配置 memcache 以增强性能..”,进入config文件夹中修改配置文件,添加以下代码即可。
'memcache.local' => 'OCMemcacheRedis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
),
按照上面的方法设置后,NextCloud基本上就没有什么提示了,我们可以看到Oneinstack跑NextCloud基本上没有什么问题。
二、NextCloud安装ocDownloader
进入到NextCloud插件安装页面,搜索ocDownloader就可以直接在线安装了。
安装好了后,启用完成后就可以从顶部工具栏进入ocDownloader面板,这里我们就可以看到添加下载和查看下载任务了。
三、NextCloud服务器安装Aria2
上面安装了NextCloud的插件ocDownloader,但是还不能使用,我们需要给服务器上安装Aria2,代码如下:
wget https://copr.fedoraproject.org/coprs/rhscl/devtoolset-3/repo/epel-6/rhscl-devtoolset-3-epel-6.repo -O /etc/yum.repos.d/rhscl-devtoolset-3-epel-6.repo yum install devtoolset-3-gcc devtoolset-3-gcc-c++ devtoolset-3-binutils devtoolset-3-gcc-gfortran scl enable devtoolset-3 bash gcc --version wget https://github.com/aria2/aria2/releases/download/release-1.32.0/aria2-1.32.0.tar.gz tar xzvf aria2-1.32.0.tar.gz cd aria2-1.32.0 ./configure make make install
如果你的gcc编译器版本号够高,可以省略前三步,直接wget下载aria2然后编译即可。编辑sudoers文件:
vi /etc/sudoers
找到下图中的这部分代码:
将:
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
修改为:
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
退出vi并保存,这里因为sudoers是一个只读文件,可能在退出vi的时候会弹警告提示,我们强行退出使用如下命令:
:wq!
现在就可以使用sudo以www的用户来运行aria2了:
sudo -u www aria2c --enable-rpc --rpc-listen-all --rpc-allow-origin-all -c --dir /root/downloads -D
这个命令行启动默认我们选择了文件的下载保存路径是/root/downloads,但实际上这个路径是不生效的,它的目的仅仅只是用于让aria2能够成功启动。我们稍后可以在ocDownloader插件中来设置文件保存路径。
四、NextCloud使用ocDownloader插件
进入到NextCloud的ocDownloader操作界面,点击添加下载任务,就可以开始离线下载了,以下是wzfou.com搭建的演示:。
ocDownloader支持BT和磁力链接下载。
ocDownloader会在NextCloud创建一个下载目录,所有的下载的文件都会放在这个目录下,从NextCloud中可以查看下载的文件。
经过wzfou.com测试,NextCloud可以正常地查看和删除ocDownloader下载的文件,权限都没有问题。
五、总结
Nginx跑NextCloud有一个问题就是静态化规则的问题,Oneinstack跑NextCloud建议使用Apache,NextCloud官方的教程都是是用Apache,兼容性是最好的。
总得来说,NextCloud使用ocDownloader调用Aria2离线下载还是挺方便的,它解决了Nextcloud离线下载搭建方法中文件读写权限问题,可以正常读写和删除Aria2下载的文件。