Linux / Nginx / 工具、教程收藏 · 2018年3月12日

Oneinstack安装NextCloud以及使用Aria2离线下载和ocDownloader插件配置

NextCloud作为一个开源免费的云存储网盘项目,任何人都可以自由的获取NextCloud 程序,在家庭或公司构建私有且免费的网络硬盘。它是完全由你用户控制的私有、安全且功能完整的文件同步与共享解决方案,一经推出就广受好评。
之前我也分享了不少NextCloud安装部署教程,最让人感兴趣的就是NextCloud搭配Aria2,来实现离线下载。因为NextCloud自带了音乐与视频播放功能,且支持WebDAV等,完全可以基于NextCloud打造一个云存储平台或者云盘。
NextCloud有一个挂载外部存储的功能,它可以允许你将第三方存储、本地硬盘等作为存储硬盘挂载在服务器上,作为NextCloud的存储服务。但是很多人在操作过程中会出现权限问题,如无法读取文件或者删除文件。
本篇文章就来分享一下在Oneinstack上手动安装部署NextCloud并添加外部存储,同时再分享一个NextCloud离线下载插件ocDownloader,它可以结合Aria2实现Http、FTP和BT种子离线下载,同时又可以使用NextCloud管理下载文件,完美解决了文件权限的问题。
Oneinstack手动安装NextCloud以及使用Aria2离线下载和ocDownloader插件配置
更多的关于离线下载的方法还有工具,你可以试试这些:

  1. Windows和Linux安装使用Aria2-实现离线下载资源和在线管理文件播放视频
  2. Nextcloud离线下载搭建方法-整合Aria2和AriaNg、Aria2 WebUI实现离线下载
  3. 树莓派Raspberry Pi安装NextCloud教程-自建家庭私有云局域网共享

一、Oneinstack上安装NextCloud

NextCloud官网:

  1. 官网:https://nextcloud.com/
  2. 插件:https://apps.nextcloud.com/apps/ocdownloader
  3. 项目:https://github.com/e-alfred/ocdownloader

OneinStack安装还是挺简单的,由于我们要在Oneinstack上跑NextCloud,所以在安装的过程中请选择LAMP模式,同时建议将相关的组件都选择安装上。参考之前的文章:OneinStack一键安装脚本-轻松部署Let’s Encrypt证书配置Https站点

1.1  NextCloud安装

打开浏览器进入到NextCloud安装界面,如果你出现以下错误提示:

PHP 被设置为移除内联块, 这将导致多个核心应用无法访问.
这可能由缓存/加速器导致的, 例如 Zend OPcache 或 eAccelerator.

如下图:
NextCloud错误提示
解决方法:修改php.ini中Opcache的参数进行修改,如果是Oneinstack的话需要在/usr/local/php/etc/php.d/ext-opcache.ini 中修改。找到此代码并改成:opcache.save_comments=1,因为默认是0,改完重启php-fpm就行。
NextCloud安装过程

1.2  NextCloud配置

安装好了NextCloud后,进入到设置中一般地会提示几个安全问题:
NextCloud安全设置
对于“PHP 模块 ‘fileinfo’ 缺失. 我们强烈建议启用此模块以便在 MIME 类型检测时获得最准确的结果.”可以用执行:./addons.sh来安装fileinfo模块即可。
NextCloud安装模块
对于“HTTP 请求头 “Strict-Transport-Security” 没有配置为至少 “15552000” 秒. 出于增强安全性考虑, 我们推荐按照安全提示中的说明启用 HSTS.”,进入到/usr/local/apache/conf/vhost,修改xxx.conf。
NextCloud添加头部信息
加入以下代码即可。

Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"

对于“内存缓存未配置. 如果可用, 请配置 memcache 以增强性能..”,进入config文件夹中修改配置文件,添加以下代码即可。

'memcache.local' => '\OC\Memcache\Redis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
),

NextCloud缓存代码
按照上面的方法设置后,NextCloud基本上就没有什么提示了,我们可以看到Oneinstack跑NextCloud基本上没有什么问题。
NextCloud配置完成

二、NextCloud安装ocDownloader

进入到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添加离线下载
ocDownloader支持BT和磁力链接下载。
ocDownloader新建下载
ocDownloader会在NextCloud创建一个下载目录,所有的下载的文件都会放在这个目录下,从NextCloud中可以查看下载的文件。
ocDownloader查看已经下载的文件
经过wzfou.com测试,NextCloud可以正常地查看和删除ocDownloader下载的文件,权限都没有问题。

五、总结

Nginx跑NextCloud有一个问题就是静态化规则的问题,Oneinstack跑NextCloud建议使用Apache,NextCloud官方的教程都是是用Apache,兼容性是最好的。
总得来说,NextCloud使用ocDownloader调用Aria2离线下载还是挺方便的,它解决了Nextcloud离线下载搭建方法中文件读写权限问题,可以正常读写和删除Aria2下载的文件。
文章出自:挖站否 https://wzfou.com/nextcloud-lixian/,部分内容参考自:荒岛  版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。