树莓派做下载机+Web服务器(Aria2下载+yaaw做UI+nginx)
今天收到了小派,UK产的绿板子,还配了个透明盒子,装在里面闪亮亮的很好看,而且只有卡片大小,寻思着用它做什么好呢?想来想去,看到人家拿小派作家庭媒体中心,还有人拿它当下载机,于是就萌生了一个家庭媒体中心+下载机二合一的东东,白天看电影,晚上添加任务让它自己下载到SD卡里,第二天就能看了,接上无线网卡,通过手机控制它,遥控器都省了。下面我们就开始吧。
你需要的东西:
- Model B型树莓派(带壳)
- 一张Class10的高速度SD卡
- 5v2A的电源适配器(如果你的智能手机充电器,能达到5v1A及以上,就拿那个当电源好了)
- 一根HDMI线
- 一杯程序员饮料
也可能需要的东西:
- 纯铜散热器套装
- 一个小巧玲珑即插即忘的无线网卡(当然前提是你家要有无线网络)
- HDMI转DVI线(连接没有HDMI的显示器用)
- 容量超级大的移动硬盘
- 4口USB集线器
高大上的奢侈品
需要安装的软件如下:
PC端:
- putty(一个SSH工具,用于远程连到你的树莓派上,这样你就不用把你的小派挪来挪去了)
- FileZilla(一个开源的ftp客户端,这样你可以把你电脑上的文件直接拖到你的小派里了)
- win32DiskImager-binary(把网上下载的镜像刷到SD卡里)
前两款软件的安装都非常简单,直接一路下一步,第三款直接解压缩,这里就不介绍了
树莓派端:
- Raspbmc(Xbmc的树莓派版,Xbmc是一个流行的媒体中心系统,基于linux,可以方便的播放你各种设备上的音频视频图片拽过来在你的Xbmc上播放,也能播放广播和在线视频,这里要赞一下Raspbmc的作者,Sam Nazarko,他还是一个19岁的学生,相当厉害)
- aria2c(Linux下的命令行下载利器,nani?命令行???你是在逗我么,莫怕,接着往下看)
- yaaw(基于web的aria2c的UI,可以添加任务,查看任务进度)
- nginx(http服务器,用于承载yaaw)
我们需要从Raspbmc网站下载镜像,这里你有两个选择,
- 安装的时候比较痛苦:参照这篇教程,点击页面上的link链接或这里下载windows installer,按照页面上的指导向SD中刷入boot镜像(这个镜像只包含最基本的boot,在启动后会联网下载最新的镜像),完成后插入SD到你的树莓派中,开机,并为你的树莓派插上网线(此时无线网卡不可用),用前面提到的线缆连接上显示器(或电视机),看着蓝色的屏幕开始品尝你的程序员饮料吧,痛苦开始了,视你的网速,我是在等了2个小时之后突然发现它只走了20%然后果断放弃了
- 更新的时候比较痛苦:访问Raspbmc下载页面,点击页面上的Standalone Image下载完整镜像,解压缩得到一个sd.img,然后使用win32DiskImager-binary.exe工具刷入SD卡中(选择解压出的sd.img,然后“设备”里选择你的SD卡,注意一定要是你的SD卡,别选错了,然后点“写”),等刷成功之后,把SD插入树莓派中,启动,你就可以使用了,这个时候你也可以使用你的无线网卡了,需要配置一下,一会说。
到此,媒体中心安装完成,恭喜你获得了“事倍功半”成就(Why?看了这么久蓝屏,就完成了一半,不是事倍功半么),好的,继续往下看!
我们开始配置下载机。
在PC上打开putty,进你的路由器看你的树莓派地址是多少,填进puttyHost Name(or IP address)栏里,点Open,
在弹出的窗口中输入用户名pi,回车,然后是密码raspberry(屏幕上不会有任何显示),回车,你就打开了一个树莓派的shell,可以远程操作啦!(nani?又是命令行,这回帮不了你了,只能用命令行了,不过顺带学习一下linux的精髓也是不错的嘛,对吧)。我们开始安装软件。
第一次连接ssh可能还要进行一些配置,根据提示点ok就行了。
进入后先update一下软件源,使用命令
1
|
sudo apt-get update
|
首先安装aria2c
在shell窗口使用下面的命令进行安装
1
|
sudo apt-get install aria2
|
接下来我们做一些配置
1
2
3
|
mkdir ~/.aria2
touch ~/.aria2/aria2.session
nano ~/.aria2/aria2.conf
|
在aria2.conf里面输入如下内容,可以直接复制后在窗口里按鼠标右键粘贴
1
2
3
4
5
6
7
8
9
10
|
dir=/home/samba/shareFolder |
按ctrl+o 保存,回车一下,然后按ctrl+x退出编辑,完了后运行:
1
|
aria2c --conf-path=/home/pi/.aria2/aria2.conf
|
测试有没有错误,如果没有错误的话按一下Ctrl + C终止当前程序,继续往下。
接下来我们让aria2c成为系统服务并且开机自启动
1
|
sudo nano /etc/init.d/aria2c
|
粘贴如下内容到窗口,注意格式一定要保持一致
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#!/bin/sh
### BEGIN INIT INFO
# Provides: aria2
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Aria2 Downloader
### END INIT INFO
case "$1" in
start)
echo -n "Starting aria2c"
sudo -u pi aria2c --conf-path=/home/pi/.aria2/aria2.conf -D
;;
stop)
echo -n "Shutting down aria2c "
killall aria2c
;;
restart)
# killall aria2c
sudo -u pi aria2c --conf-path=/home/pi/.aria2/aria2.conf -D
;;
esac
exit
|
之后按ctrl+o保存,回车一下,再按ctrl+x退出编辑
使用命令进行权限更改
1
|
sudo chmod 755 /etc/init.d/aria2c
|
测试服务是否可以启动:
1
|
sudo service aria2c start
|
如果只显示Starting aria2c,没有其他错误提示的话就成功了
如果提示有错误,可重启系统,执行sudo reboot命令试试。
添加aria2c服务自动运行:
1
|
sudo update-rc.d aria2c defaults
|
到此aria2c就可以开机自启动了。
检查aria2c是否启动:
1.先确认aria2是否已启动,命令:ps -ef | grep aria2c,应该可以两行内容,
其中 aria2c --conf-path=/opt/etc/dm2_aria2/aria2.conf -D 类似的一行内容,说明已经启动了。
2.配置如果不正确,重点修改/opt/etc/dm2_aria2/aria2.conf 中的配置
下来是安装nginx web服务器
在shell窗口使用命令进行安装
1
|
sudo apt-get install nginx
|
由于Raspbmc以及自带的远程管理占用了80端口,因此我们需要更改nginx的端口号使他们不相互冲突,通过修改nginx.conf文件实现
使用下面的命令进入修改
1
|
sudo vi/etc/nginx/sites-available/default
|
1
2
|
小技巧
当你在命令行输入路径时,可以使用tab键进行自动补全,如果有多个候选项,按tab键进行切换
|
进入vi后,输入
1
|
/listen
|
按回车 查找listen,找到
1
2
3
|
server{
#listen 80; ##...
#listen [::]:80 ...
|
按方向键移动光标(nani?不能用鼠标?对不起,不能)到第一个listen的”#”,按del删除,再移动光标到80,按一下字母i,进入编辑模式,此时就可以自由编辑了,把80改为8080,改完后应该是这个样子:
1
2
3
|
server{
listen8080;##...
#listen [::]:80 ...
|
按一下esc键,回到浏览模式,然后按一下冒号键(shift + ;键),输入wq,保存退出
使用如下命令启动nginx
1
|
sudo /etc/init.d/nginx start
|
进入http://树莓派的ip:8080/你能看到Welcome to nginx!说明安装成功(OY!)
再来是安装yaaw
从https://github.com/binux/yaaw这里 下载 yaaw,可以使用git直接下载到树莓派上或者在PC端点击页面的右下角那个“Download Zip”下载最新版本,解压缩,再通过FileZilla上传到你的树莓派上的,我推荐第二种方式,这样你就不用命令行了:),你也可以使用命令行现在yaaw。
在提供一个中文版的下载地址:http:
//github
.com
/wzhy90/yaaw
第一种方法:
cd /var/www
git clone http://github.com/wzhy90/yaaw
第二种方法:
在PC端解压缩yaaw的压缩包,解压出的文件夹叫yaaw-master,我们把它重命名名为yaaw
我们还需要更改一下nginx的www目录访问权限,才能使用ftp把yaaw扔进去
1
|
sudo chmod777/usr/share/nginx/www/
|
之后打开FileZilla,在”主机”处输入你的树莓派的ip,用户名输入pi,密码输入raspberry,点击“快速连接”,然后在下面“本地站点里”选择yaaw所在的本地路径,在“远程站点”里定位到/usr/share/nginx/www,把刚才的yaaw拖进去就行了。
然后在你的shell上使用命令
1
|
sudo chmod-R777/usr/shared/nginx/www/yaaw
|
让yaaw文件夹可以被浏览器访问。
然后在pc的Chrome的地址栏里输入http://树莓派IP:8080/yaaw,就能看到任务管理界面了,它看起来大概像这个样子
到此大功告成,OY!!
备注:在其他浏览器中使用的时候,在点击“+ Add”或者“扳手”按钮的时候,可能会出现灰色的遮罩层,看不到弹出的界面。
别着急,我们还需要一些额外的工作使你以后的使用更方便。有点耐心,就要完了。
一些额外的工作:
- 首先要把系统语言改成中文,在System-Settings-Appearance-International里把Language改成Chinese(Simple),光标移开就自动换了,然后把字符集改成Chinese Simplified (GBK)
- 无线网的配置,这个需要在树莓派的UI界面进行,进入程序-Raspbmc Settings-Network Configuratioin
- 请为你的小派在路由器里分配一个固定的IP地址,这样可以省去很多麻烦。
远程控制:
你现在有两种方式来远程控制你的树莓派了,
知识加油站:
什么是树莓派?
树莓派是一款基于ARM的微型电脑主板,以SD卡为内存硬盘,卡片主板周围有两个USB接口和一个网口,可连接键盘、鼠标和网线,同时拥有视频模拟信号的电视输出接口和HDMI高清视频输出接口,以上部件全部整合在一张仅比信用卡稍大的主板上,具备所有PC的基本功能只需接通电视机和键盘,就能执行如电子表格、文字处理、玩游戏、播放高清视频等诸多功能。 Raspberry Pi B款只提供电脑板,无内存、电源、键盘、机箱或连线。
最后让我们的主角亮个像吧:
出处:http://www.boydwang.com/2013/12/build-your-raspberrypi-as-a-media-center/
=================================================================================================
最近看了很多用树莓派或者openwrt路由器做下载机的。
但是看那些教程,小白肯定是不会弄了,所以我就做这个教程,应该接近小白了,一步一步。
首先树莓派的系统要装好。
首先安装aria2,apache2
1
|
sudo apt-get install aria2 apache2 |
装好之后设置好apache2的权限:
1
|
sudo visudo |
底部添加这行:
1
|
www-data ALL=(ALL) NOPASSWD: ALL |
Ctrl + O保存,Ctrl + X退出
然后在搞aria2的
1
2
3
|
mkdir ~/.aria2 touch ~/.aria2 /aria2 .session nano ~/.aria2 /aria2 .conf |
aria2.conf里面写这些:
1
2
3
4
5
6
7
8
9
10
|
dir=/home/xbian/Download #下载默认的目录 disable-ipv6=true enable-rpc=true rpc-allow-origin-all=true rpc-listen-all=true #rpc-listen-port=6800 continue=true input-file=/home/xbian/.aria2/aria2.session #刚才touch命令的那个文件,路径要绝对路径 save-session=/home/xbian/.aria2/aria2.session #同上,这个文件的作用是保存你的下载列表,不保存的话重启后所有下载都木有了 max-concurrent-downloads=3 |
完了后运行:aria2c –conf-path=/home/xbian/.aria2/aria2.conf
测试有没有错误,如果没有错误的话Ctrl + C终止程序继续下一步,有错误会提示你conf文件哪里错误。
把aria2做成系统的服务:
1
|
sudo nano /etc/init .d /aria2c |
内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#!/bin/sh ### BEGIN INIT INFO # Provides: aria2 # Required-Start: $remote_fs $network # Required-Stop: $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Aria2 Downloader ### END INIT INFO case "$1" in start) echo -n "Starting aria2c" sudo -u xbian aria2c --conf-path=/home/xbian/.aria2/aria2.conf -D #sudo -u后面的是你正在使用的用户名,因为我用的XBian,用debian的是pi(没改用户的话) ;; stop) echo -n "Shutting down aria2c " killall aria2c ;; restart) killall aria2c sudo -u xbian aria2c --conf-path=/home/xbian/.aria2/aria2.conf -D #同上面的一样,根据自己的用户名改xbian。 ;; esac exit |
Ctrl + O 保存后退出
然后设置这个文件的权限。
1
|
sudo chmod 755 /etc/init .d /aria2c |
测试服务是否可以启动:
1
|
sudo service aria2c start |
如果只显示Starting aria2c,没有其他错误提示的话就成功了。
添加aria2c服务自动运行:
1
|
sudo update-rc.d aria2c defaults |
Aria2相关的好了,下面开始网页控制aria2下载。
1
2
|
cd /var/www git clone http: //github .com /wzhy90/yaaw |
管理器用的是yaaw,网上的是英文的,我已经翻译好中文了。
用浏览器打开yaaw:http://192.168.1.14/yaaw
如果没提示错误就可以了
用迅雷离线需要另外的软件。
firefox的到这里安装这个扩展:https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/?src=search
安装完后打开这个连接安装迅雷离线插件:ThunderLixianExporter.user.js
chrome到这里安装扩展:https://chrome.google.com/webstore/detail/thunderlixianassistant/eehlmkfpnagoieibahhcghphdbjcdmen
然后打开迅雷离线,点右上角的设置。
Aria2 JSON-RPC Path写你自己的ip地址,YAAW网页里面的设置有,可以复制。
保存后离线下载完的文件,选中后点批量导出,选YAAW。然后你的派就开始下载文件了。
出处:http://shumeipai.nxez.com/2014/07/01/raspberry-pi-do-download-machine-aria2.html
==========================================================================================
常见故障
在参考了网上众多文章之后,自己动手的过程中,还是不可避免的遇到了一些问题,现在把我遇到的问题及解决方法简单的罗列一下:
检查aria2c是否启动
1.先确认aria2是否已启动,命令:ps -ef | grep aria2c,应该可以两行内容,
其中
/opt/bin/aria2c --conf-path=/opt/etc/dm2_aria2/aria2.conf -D
2.配置如果不正确,重点修改/opt/etc/dm2_aria2/aria2.conf 中的配置
3.保证种子有流量
修改aria2下载路径
1:根据aria2的配置文件。
2:打开进入aria2.conf.
3:修改aria2文件,例如默认路径是dir=/shares/Public,如果你想将路径修改到public文件夹下的“A”文件夹。修改如下:dir=/shares/Public/A
4:重启aria2服务:先执行:/etc/init.d/S90aria2 stop,然后执行:/etc/init.d/S90aria2 start。
5:打开yaaw的web控制界面,查看设置是否已修改完成。
我根据上面的步骤,在web界面查看,一直提示服务器错误,但我重启系统reboot之后,则问题就正常了,或许哪里有缓存的问题吧。
树莓派做下载机+Web服务器(Aria2下载+yaaw做UI+nginx)的更多相关文章
- 外网主机访问虚拟机下的Web服务器_服务器应用_Linux公社-Linux系统门户网站
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- ubuntu 下配置Web服务器
ubuntu 下配置Web服务器 1.切换管理员身份 终端/文本界面输入命令: su 根据提示输入密码 注: 如果不能使用su 点击查看如何启用su2.安装MySQL5 apt-get install ...
- CentOS 6.2下搭建Web服务器
1Centos 6.2下搭建web服务器 如今,Linux在Web应用越来越广,许多企业都采用Linux来搭建Web服务器,这样即节省了购买正版软件的费用,而且还能够提高服务器的安全性. 之前我们介绍 ...
- Linux下查看Web服务器当前的并发连接数和TCP连接状态
对于web服务器(Nginx.Apache等)来说,并发连接数是一个比较重要的参数,下面就通过netstat命令和awk来查看web服务器的并发连接数以及TCP连接状态. $ netstat -n | ...
- 在Win10下搭建web服务器,使用本机IP不能访问,但是使用localhos或127.0.0.1可以正常访问的解决办法
最近在在Win10下搭建web服务器,发现通过windows自带的浏览器win10 edge浏览器使用本机IP不能放问,但是使用localhos或127.0.0.1可以正常访问, 后来无意发现,使用w ...
- CentOS 6.3下搭建Web服务器
准备前的工作: 1.修改selinux配置文件(/etc/sysconfig/selinux) 关闭防火墙 (1)把SELINUX=enforcing注释掉 (2)并添加SELINUX=disable ...
- 22-1 web传输视频 Opencv+usb摄像头 树莓派+Flask实现视频流媒体WEB服务器
第一篇 讲解原理 https://blog.miguelgrinberg.com/post/video-streaming-with-flask 第二篇 加入多线程可以直接用 https://gith ...
- [转]三大WEB服务器对比分析(apache ,lighttpd,nginx)
原博文地址:http://www.blogjava.net/daniel-tu/archive/2008/12/29/248883.html 一.软件介绍(apache lighttpd ngin ...
- 三大WEB服务器对比分析(apache ,lighttpd,nginx)
一.软件介绍(apache lighttpd nginx) 1. lighttpd Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点.lighttpd是众多 ...
随机推荐
- Vue自动化工具(Vue-CLI)
一.组件的概念 1.概念 组件(Component)是自定义封装的功能.在前端开发过程中,经常出现多个网页的功能是重复的,而且很多不同的网站之间,也存在同样的功能. 而在网页中实现一个功能,需要使用h ...
- ubuntu软件(查看文件差异)
你可以在ubuntu系统自带的软件--->ubuntu软件中心输入:meld diff 就可以安装.
- oracle传入一个可能为空的参数进行查询
在我们数据库的表中的某些字段可能为空,且传入的查询参数也可能为空. 例如 ,,); 其查询结果集如下 MAPPING_ID PARTY_ID VENDOR_ID SUPPLIER_REG_ID 332 ...
- OAF 通过个性化 在标准事件上添加验证
在实际的开发过程中,我们经常会遇到以下情况: 在执行标准的功能之前要对个性化的内容进行校验. 比如:在某个标准页面通过个性化添加了一个勾选框,在点击下一步的时候必须去验证此勾选框是否勾选. 具体实现如 ...
- HTML <a> 标签的伪类
伪类的语法: selector : pseudo-class {property: value} CSS 类也可与伪类搭配使用. selector.class : pseudo-class {prop ...
- transition多个属性同时渐变(left/top)
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head> < ...
- jconsole工具使用----jvm内存泄漏问题
转载地址:https://www.cnblogs.com/baihuitestsoftware/articles/6405580.html Jconsole,Java Monitoring and M ...
- 查看dll导出函数的方法
1.使用VS自带工具: (1)进入VS开发环境,然后Tools -> Visual studio 2015 Command Prompt,打开兼容工具命令提示符, (2)cd到dll所在目录,输 ...
- BZOJ1461 字符串的匹配
什么字符串...明明是两个数列... 分类上来讲,还是一道很好的noip题...(雾) 首先,kmp会不会?(答:会!) 其次,树状数组求顺序对会不会?(再答:会!) 讲完了!>.< 进入 ...
- 数据仓库建模与ETL的实践
一.Data仓库的架构 Data仓库(Data Warehouse DW)是为了便于多维分析和多角度展现而将Data按特定的模式进行存储所建立起来的关系型Datcbase,它的Data基于OLTP源S ...