Aria2+NextCloud离线下载配置实践
用Aria2在我的vps上实现离线下载,用NextCloud做网盘。
前提条件
一台运行Ubuntu的VPS,默认你会基本命令和vim。此处不介绍如何安装Apache,PHP等需要的环境,可手动可面板安装。
1.安装Aria2
首先到aria2官网找文档,发现只提供源码给你编译,我不想那么麻烦,用关键字ubuntu+aria2搜索,发现软件源有编译好的aria2,直接安装。
sudo apt-get install aria2
aria2c -h
可以查看命令行程序使用说明。
2.安装AriaNg(UI界面)
然后安装web界面,推荐AriaNg。界面不需要和后端位于同一服务器,因为他们用rpc而不是别的方式通信。只需要下载后解压打开index.html,或者直接访问在线服务如我的AriaNg。
3.配置Aria2(RPC部分)
aria2c允许直接附加命令行参数作为配置,但为了方便,还是改配置文件。配置文件有多处,以~/.aria2/aria2/conf
为例,用vim做以下配置(我们的目的是启动rpc服务以便UI调用):
enable-rpc=true
rpc-allow-origin-all=true
rpc-listen-all=true
rpc-secret=【自定义密钥】
以上选项允许我们从任何地方使用Aria2,第二行解决跨域问题,第三行允许响应外部请求。
然后启动aria2c。需要自定义下载路径可以设置dir=[PATH]
。
4.配置AriaNg
在Aria2基本设置中,填写服务器地址与密钥,端口默认是6800(如果安全策略不开放该端口需要到面板或防火墙改写规则)。
之后可以正常使用下载功能。
5.配置Aria2(后台启动)
Ubuntu的启动配置也有多处,这里以/etc/rc.local
为例,在其exit 0
之前添加想要运行的脚本。这里可以添加一行aria2c &
。
6.安装NextCloud
下载压缩包后解压到网站目录,根据提示安装。
根据官方manual,在/etc/apache2/sites-availabel/nextcloud.conf
做以下修改(路径替换成自己的):
Alias /nextcloud "/var/www/nextcloud/"
<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
然后使配置文件生效a2ensite nextcloud.conf
。这里的配置有些晦涩,除了运维应该都不清楚,简单表述一下,allowoverride是启用.htaccess的重写,multiviews是apache提供的自动补全/查找扩展名并返回文件的功能。可以想象index.php?abc能够通过重写地址转换成abc,同时访问home.php可以直接访问home。
之后启用External storage support,添加Aria2的下载路径,以便访问离线下载目录。
7.配置Aria2(解决权限问题)
systemd允许我们创建自定义service,需要在/lib/systemd/system
下创建aria2.service
(名字可以改)
[Unit]
Description=Aria2Service
[Service]
ExecStart=/usr/bin/aria2c --conf-path=/www/aria2.conf
User=www
[Install]
WantedBy=default.target
解释一下为什么这里指定了不同的配置文件,并且用www用户执行命令。终端中启动aria2下载的文件权限默认是644,属于root(或你登陆的用户),这导致nextcloud(php的user也是www)无法删除下载的文件。之前的配置文件在root目录下,为了使配置文件意义清晰,就搬到www目录。
8.替代方案:ES文件浏览器+FTP
如果不想配置NextCloud,也可以安装FTP Server,在移动端用ES文件浏览器访问服务器,它还支持在线播放视频。