因为本人在这段时候,看到了一个叫作树莓派的东东,初步了解以后以为颇有意思,因而想把整个过程记录下来。javascript
Raspberry Pi(中文名为树莓派,简写为RPi,(或者RasPi / RPI) 是为学习计算机编程教育而设计),只有信用卡大小的微型电脑,其系统基于Linux。随着Windows 10 IoT的发布,咱们也将能够用上运行Windows的树莓派。
自问世以来,受众多计算机发烧友和创客的追捧,曾经一“派”难求。别看其外表“娇小”,内“心”却很强大,视频、音频等功能统统皆有,可谓是麻雀虽小,五脏俱全。java
用个人话理解就是树莓派就是一台主机,你能够外接显示器,键盘鼠标,u盘等等外设,由于它体积很小,并且又有不少串口和外接的口,能够直接调用不少底层硬件。android
市面上大可能是3代B+型,淘宝一搜树莓派一大堆都是,价钱纯主板(不要任何外设)在230+左右,有点小贵,超过个人预算,因此我继续寻找廉价的,终于让我发现了一款100+的树莓派。nginx
树莓派zero w是一款mini的树莓派,体质只有3b+的1/3。实际到手后,你会发现它真的超级小,超级可爱。如下是个人实物图,你能够看看大小到底有多mini。web
你能够看到,最上面是一根普通的黑色签字笔,接下来是一个即插即用型的外接wifi网卡,而后是一个USB读卡器,最底下的就是咱们今天的主角zero w。它真的超级小,有木有。真的是完美的诠释了那句“麻雀虽小,五脏俱全”的话。shell
zero w这款树莓派的主要参数以下:编程
你别看它的cpu只有1核,内存只有512MB,就以为它可能什么都作不了,可是实际上它的性能仍是很好的,用于跑一个网站真的是小case。浏览器
关于更多树莓派型号或者使用教程你能够去树莓派实验室这个网站,上面有丰富的资源。app
你可能提早须要准备的东西以下:ssh
我使用的是Raspbian Stretch Lite这个系统镜像,这个系统是官方制做的,lite是无桌面版的,只有黑漆漆的控制台,优势是体积小,省性能和内存。
名字带有desktop的是有桌面ui的,对不熟悉liunx系统的朋友可能更友好,可是体积很大,占用的性能也会更高。
下载好你须要的系统镜像后,以下图
一开始只有一个zip的压缩包,大小大概360MB左右,你须要把它解压,获得上图的文件夹
而后进入文件夹能够看到一个img的镜像,大小为1.7GB左右
ps:这个官方的Raspbian镜像,若是是其余第三方的镜像,可能下载后的压缩包解压后不是img镜像,这种状况请另行百度解决
把内存卡插入读卡器后,插入电脑。
打开Win32DiskImager软件后,选择img镜像,设备选择你的U盘,而后点击写入就能够了,写入完成后会弹出成功的提示框。
ps: 我上图没有选择设备,由于的没插入读卡器,仅仅是示范而已
先别急着拔出读卡器,此时,咱们电脑能够看到u盘中只有一个名为boot的分区,大小可能只有40MB左右,不要着急,由于window不识别内存卡中liunx系统的其余分区。
由于咱们的zero w有一个mini hdmi的接口,可是我不须要屏幕,因此须要使用ssh链接到zero w中的系统,因此须要在第一次开机就能开启ssh功能。
咱们进入boot分区内,而后新建一个名为ssh的文件,注意不要后缀名!!!!也不要往里面写任何东西!!
由于ssh链接是须要ip地址的,因此咱们须要将zero w在第一次开机自动链接wifi,使其和咱们的电脑处于一个局域网,这样咱们才能够经过ssh链接到zero w的系统。
一样的在boot分区内,新建一个名为wpa_supplicant.conf的文件,而后往里面写入以下内容后保存:
country=CN ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="你的wifi名字" psk="你的wifi密码" }
取出读卡器中的内存卡,而后插入到zero w中,使用一根usb安卓数据线链接电源(5V1A)便可。
等待几分钟,期间咱们的zero w的指示灯会一直闪烁,很正常,等待指示灯常亮的时候,咱们去路由器上,查看一下树莓派的ip地址。
能够看到咱们zero w的ip为192.168.0.104,而后使用ssh链接工具(推荐使用putty)链接树莓派,初始帐户为pi,密码是raspberry。
链接成功,如上图所示。这样咱们的系统就正确无误的安装好了。
ps: 若是是手机开启热点当作一个路由器的话,我们手机下载一个名叫android terminal的app,而后输入
ip neigh
指令,就能够查到链接到手机的设备的ip信息了。
由于国外的源,我们在国内的链接过去网速很慢,因此咱们须要修改成国内的源,我修改的是中科大的源。
sudo nano /etc/apt/sources.list --注释其余内容,添加如下: deb http://mirrors.ustc.edu.cn/raspbian/raspbian/raspbian stretch main contrib non-free rpi
sudo nano /etc/apt/sources.list.d/raspi.list --注释其余内容,添加如下: deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian stretch main ui
sudo apt-get update sudo apt-get upgrade
sudo dpkg-reconfigure tzdata
找到亚洲Asia,而后选择shanghai就能够了
第一种:
sudo raspi-config
进入选择找到interfacing option选择,而后找到ssh,按回车使能enable就能够了
第二种:
在终端命令行中启动SSH服务后,若是系统重启或关机后启动,SSH服务默认是关闭的,依然须要手动启动,为了方即可以设置SSH服务开机自动启动,打开/etc/rc.local文件,在语句exit 0以前加入:/etc/init.d/ssh start
建议都试试,反之个人是能够了。
#安装 sudo apt-get install nginx #启动 sudo /etc/init.d/nginx start #重启 sudo /etc/init.d/nginx restart #中止 sudo /etc/init.d/nginx stop
打开浏览器访问192.168.0.104(你的树莓派ip地址),能够看到nginx的页面,说明安装好了。
我这边上传了个人博客,以下图
能够正常的看到页面了,可是这样只能在内网(局域网中)看到,我想让全部人均可以访问怎么办?
内网穿透,意思就是将内网(本地)的web应用经过nat穿透到公网上,从而让别人能够访问到。
内网穿透目前主要由ngrok和frp两种,都很是好用,国内ngrok免费的有ittun、sunny和natapp,这三个都是免费的,前面两个能够自定义域名,后面的须要vip版本才能够自定义域名。
我这三种都试过,我发现sunny的arm版本的ngrok客户端在个人树莓派运行不了,ittun的和natpp的ngrok均可以,因为须要自定义域名,我使用的是ittun的ngrok_arm版本的
使用方法这三者官网都有详细说明,你们自行查看。
这是正常运行时的截图,访问http://zerow.ittun.com/时能够...
由于须要ngrok在后台运行,因此我用的是screen会话使其能够在后台运行。可是开启自启,尚未实现,万一断电或者断网了,我必须手动去运行一下ngrok,这是目前没有解决的痛点。
树莓派不只仅只是能够用于运行一个网站,还有不少不少的功能等待你的开发,能够多去看看树莓派实验室里面,不少大神都写了不少实用的教程。
个人zero w状态信息以下:
在上面开启了一个nginx和ngrok服务,内存剩余还有250MB,仍是很舒服的,cpu温度也不算高,运行两天了,基本在37-39之间。