因爲本人在這段時候,看到了一個叫作樹莓派的東東,初步瞭解以後以爲頗有意思,因而想把整個過程記錄下來。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之間。