用树莓派构建一台服务器,永久运行网站

1、前言

因为本人在这段时候,看到了一个叫作树莓派的东东,初步了解以后以为颇有意思,因而想把整个过程记录下来。javascript

2、树莓派是什么?

Raspberry Pi(中文名为树莓派,简写为RPi,(或者RasPi / RPI) 是为学习计算机编程教育而设计),只有信用卡大小的微型电脑,其系统基于Linux。随着Windows 10 IoT的发布,咱们也将能够用上运行Windows的树莓派。
自问世以来,受众多计算机发烧友和创客的追捧,曾经一“派”难求。别看其外表“娇小”,内“心”却很强大,视频、音频等功能统统皆有,可谓是麻雀虽小,五脏俱全java

1.用个人话理解

用个人话理解就是树莓派就是一台主机,你能够外接显示器,键盘鼠标,u盘等等外设,由于它体积很小,并且又有不少串口和外接的口,能够直接调用不少底层硬件。android

2.市面上的型号

市面上大可能是3代B+型,淘宝一搜树莓派一大堆都是,价钱纯主板(不要任何外设)在230+左右,有点小贵,超过个人预算,因此我继续寻找廉价的,终于让我发现了一款100+的树莓派。nginx

3.树莓派zero w

树莓派zero w是一款mini的树莓派,体质只有3b+的1/3。实际到手后,你会发现它真的超级小,超级可爱。如下是个人实物图,你能够看看大小到底有多mini。web

1.jpg

你能够看到,最上面是一根普通的黑色签字笔,接下来是一个即插即用型的外接wifi网卡,而后是一个USB读卡器,最底下的就是咱们今天的主角zero w。它真的超级小,有木有。真的是完美的诠释了那句“麻雀虽小,五脏俱全”的话。shell

zero w这款树莓派的主要参数以下:编程

  • BCM2835处理器,1GHz主频,512MB RAM
  • BCM43438 WiFi / BT芯片
  • micro-USB电源接口
  • micro-USB OTG接口
  • miniHDMI端口
  • 复合视频和重置扩展接口
  • 脆弱的CSI摄像头接口
  • micro-SD卡座,存放操做系统
  • 40-pin GPIO扩展接口
  • 尺寸:65mm*30mm

你别看它的cpu只有1核,内存只有512MB,就以为它可能什么都作不了,可是实际上它的性能仍是很好的,用于跑一个网站真的是小case。浏览器

4.更多树莓派

关于更多树莓派型号或者使用教程你能够去树莓派实验室这个网站,上面有丰富的资源。app

3、树莓派zero w安装系统

1.准备

你可能提早须要准备的东西以下:ssh

  • 16GB or 32GB 的SanDisk内存卡(注意是之前那种放在手机上,很小的哦)
  • 一根最普通不过的usb安卓数据线(not type-c)
  • u盘格式化工具(推荐使用 SDFormatter)
  • 系统烧写工具(Win32DiskImager)
  • 树莓派系统(能够去官网下载)

我使用的是Raspbian Stretch Lite这个系统镜像,这个系统是官方制做的,lite是无桌面版的,只有黑漆漆的控制台,优势是体积小,省性能和内存。

名字带有desktop的是有桌面ui的,对不熟悉liunx系统的朋友可能更友好,可是体积很大,占用的性能也会更高。

2.png

2.第一步下载系统镜像

下载好你须要的系统镜像后,以下图

3.png

一开始只有一个zip的压缩包,大小大概360MB左右,你须要把它解压,获得上图的文件夹

4.png

而后进入文件夹能够看到一个img的镜像,大小为1.7GB左右

ps:这个官方的Raspbian镜像,若是是其余第三方的镜像,可能下载后的压缩包解压后不是img镜像,这种状况请另行百度解决

3.使用Win32DiskImager往内存卡中写入镜像

5.png

把内存卡插入读卡器后,插入电脑。
打开Win32DiskImager软件后,选择img镜像,设备选择你的U盘,而后点击写入就能够了,写入完成后会弹出成功的提示框。

ps: 我上图没有选择设备,由于的没插入读卡器,仅仅是示范而已

4.修改boot分区的文件

先别急着拔出读卡器,此时,咱们电脑能够看到u盘中只有一个名为boot的分区,大小可能只有40MB左右,不要着急,由于window不识别内存卡中liunx系统的其余分区。

4.1新建ssh文件

由于咱们的zero w有一个mini hdmi的接口,可是我不须要屏幕,因此须要使用ssh链接到zero w中的系统,因此须要在第一次开机就能开启ssh功能。
咱们进入boot分区内,而后新建一个名为ssh的文件,注意不要后缀名!!!!也不要往里面写任何东西!!

4.2新建wpa_supplicant.conf文件

由于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密码"
}

5.组装咱们的最小主机并链接

取出读卡器中的内存卡,而后插入到zero w中,使用一根usb安卓数据线链接电源(5V1A)便可。
等待几分钟,期间咱们的zero w的指示灯会一直闪烁,很正常,等待指示灯常亮的时候,咱们去路由器上,查看一下树莓派的ip地址。

6.png

能够看到咱们zero w的ip为192.168.0.104,而后使用ssh链接工具(推荐使用putty)链接树莓派,初始帐户为pi,密码是raspberry。

7.png

链接成功,如上图所示。这样咱们的系统就正确无误的安装好了。

ps: 若是是手机开启热点当作一个路由器的话,我们手机下载一个名叫android terminal的app,而后输入 ip neigh指令,就能够查到链接到手机的设备的ip信息了。

6.优化我们树莓派的系统

6.1修改源

由于国外的源,我们在国内的链接过去网速很慢,因此咱们须要修改成国内的源,我修改的是中科大的源。

6.1.1修改sources.list文件

sudo nano /etc/apt/sources.list 
--注释其余内容,添加如下:
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/raspbian stretch main contrib non-free rpi

6.1.2修改raspi.list文件

sudo nano /etc/apt/sources.list.d/raspi.list
--注释其余内容,添加如下:
deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian stretch main ui

6.1.3执行更新

sudo apt-get update
sudo apt-get upgrade

6.2修改时区

sudo dpkg-reconfigure tzdata

找到亚洲Asia,而后选择shanghai就能够了

6.3开机自启ssh

第一种:

sudo raspi-config

进入选择找到interfacing option选择,而后找到ssh,按回车使能enable就能够了

第二种:
在终端命令行中启动SSH服务后,若是系统重启或关机后启动,SSH服务默认是关闭的,依然须要手动启动,为了方即可以设置SSH服务开机自动启动,打开/etc/rc.local文件,在语句exit 0以前加入:
/etc/init.d/ssh start

建议都试试,反之个人是能够了。

7.安装nginx

#安装
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的页面,说明安装好了。
我这边上传了个人博客,以下图

8.png

能够正常的看到页面了,可是这样只能在内网(局域网中)看到,我想让全部人均可以访问怎么办?

8.内网穿透

内网穿透,意思就是将内网(本地)的web应用经过nat穿透到公网上,从而让别人能够访问到。

内网穿透目前主要由ngrok和frp两种,都很是好用,国内ngrok免费的有ittun、sunny和natapp,这三个都是免费的,前面两个能够自定义域名,后面的须要vip版本才能够自定义域名。

我这三种都试过,我发现sunny的arm版本的ngrok客户端在个人树莓派运行不了,ittun的和natpp的ngrok均可以,因为须要自定义域名,我使用的是ittun的ngrok_arm版本的

使用方法这三者官网都有详细说明,你们自行查看。

这是正常运行时的截图,访问http://zerow.ittun.com/时能够...

9.png

10.png

由于须要ngrok在后台运行,因此我用的是screen会话使其能够在后台运行。可是开启自启,尚未实现,万一断电或者断网了,我必须手动去运行一下ngrok,这是目前没有解决的痛点。

9.更多

树莓派不只仅只是能够用于运行一个网站,还有不少不少的功能等待你的开发,能够多去看看树莓派实验室里面,不少大神都写了不少实用的教程。

个人zero w状态信息以下:

11.png

在上面开启了一个nginx和ngrok服务,内存剩余还有250MB,仍是很舒服的,cpu温度也不算高,运行两天了,基本在37-39之间。

image

相关文章
相关标签/搜索