使用樹莓派搭建網站伺服器【已完成更新】

来源:https://www.cnblogs.com/moegarn/archive/2019/12/26/12102894.html
-Advertisement-
Play Games

以下內容為使用樹莓派搭建伺服器的過程,因為個人還沒有搭建完成,所以僅更新出已完成的部分,至於未完成的部分,以後會持續更新。 具體分為這幾個階段: 1.給樹莓派安裝系統 2.使用電腦連接控並制樹莓派 3.配置網站伺服器環境 4.添加網站源碼 5.配置網站環境設置 【0x01:給樹莓派安裝系統】 我是用 ...


  以下內容為使用樹莓派搭建伺服器的過程,因為個人還沒有搭建完成,所以僅更新出已完成的部分,至於未完成的部分,以後會持續更新。

===========================================================

  具體分為這幾個階段:

      1.給樹莓派安裝系統

      2.使用電腦連接控並制樹莓派

      3.配置網站伺服器環境

      4.添加網站源碼

      5.配置網站環境設置

============================================================

 

【0x01:給樹莓派安裝系統】

  我是用的是樹莓派3B+一張16GB的MicroSD(就是手機記憶體卡),如果搭建的網站需要存儲文件,例如搭建網盤需要存儲用戶上傳的文件的話,建議準備一個稍微大一點的SD卡,這裡因為我只有一張16GB的SD卡,所以就用它來安裝樹莓派系統了。(建議卡的質量選的稍微好點,否則卡一旦損壞,系統就GG了,所有過程重新來一遍,很酸爽……)

  準備好MicroSD卡,在準備需要安裝的樹莓派系統,我給樹莓派安裝的是從官網下載的Ubuntu系統,從官網下載後,需要解壓出.img文件,這就是樹莓派的系統文件格式,我們一會兒就需要往卡裡燒寫這個.img文件。

  直接把.img文件放到MicroSD是不行的,我們需要使用專門的SD卡燒寫工具燒寫系統(就是把系統安裝到MicroSD卡的意思……),我使用的是Win32DiskImager.exe,當然,在燒寫系統之前需要格式化MicroSD卡,可以使用系統預設的格式化方法,也可以使用SDFormatter.exe來進行格式化,個人建議使用第二種方法進行格式化,因為在安裝完樹莓派系統後再讀MicroSD卡會出來兩個盤區,如果想重新燒寫樹莓派系統的話,就無法將MicroSD卡格式化成原來的空間大小,還是需要通過SDFormatter.exe來還原MicroSD卡空間大小,所以這裡就乾脆直接使用SDFormatter.exe。

  格式MicroSD卡具體過程和MicroSD卡燒寫系統具體過程可參考:http://www.waveshare.net/study/article-595-1.html

  (方法不唯一,均來自網路資源)

 

 

【0x02:使用電腦連接控並制樹莓派】

   安裝完樹莓派系統後,插卡,上電,等待一會兒,因為我的樹莓派沒有安裝屏幕,所以我就按照沒有屏幕的方式進行操作。

  既然沒有屏幕,那麼就需要使用PC端通過工具來連接並控制樹莓派,這裡就用到了兩個工具:

  ①Winscp:之後會用到它來進行文件傳輸,比如你改寫了網站文件,可以使用它來傳送文件給樹莓派。(當然,樹莓派上有U盤插口,可以使用U盤,但是個人感覺這是一個相對麻煩的過程……當然,若興趣可以自行百度瞭解……) 

  ②Xshell:之後主要使用它來連接樹莓派,所以樹莓派是男一,它就是男二(emm,那Winscp就算男三吧……)

  這裡就不提供下載連接了,因為兩個工具在網上非常容易找到。

  首先,我們需要使用Xshell連接樹莓派,找一根網線將樹莓派和電腦連接起來,如果是家裡的電腦連接著有線網,沒有多餘的網口,那麼就將樹莓派連接到路由器上。方法大致相同,如果在某些細節上仍有疑問,可自行百度其他相關教程看看是否可以解決(一般是可以解決的……)

  因為我是用的是無線網,所以我直接用網線把樹莓派連接到了電腦上,觀察一下樹莓派上的兩個網口燈是否亮起,兩個燈都基本保持亮著的狀態就表示樹莓派連接正常。

  在電腦端的cmd視窗下,輸入“arp -a”,查找樹莓派的地址。我的地址是"192.168.137.~",具體過程可參考:https://www.jianshu.com/p/6cd0e6434c12

  有些人使用putty工具連接樹莓派,也可以,還是那句話,方法不唯一。

【0x03:配置網站伺服器環境】

   成功連接上樹莓派後,根據樹莓派系統的不同,登陸系統的預設用戶密碼也會不同,例如樹莓派pi的的預設用戶是pi,預設密碼是raspberry,而樹莓派的ubuntu系統的預設登陸用戶密碼都是ubuntu,所以根據自己安裝的樹莓派系統類型自行上網百度搜索預設用戶密碼,非常容易找到。

  具體連接步驟可參考:http://www.waveshare.net/study/article-741-1.html(大多數人可能卡在了連接樹莓派的階段……找不到IP地址?登陸報錯?莫急,慢慢來……)

  若登陸上去之後,需要更新一下源,我是用的是ubuntu系統,我並沒有更改源,而是直接更新了,如果不是ubuntu系統可以選擇更換源,也可以選擇直接更新,為什麼這麼說呢?因為之前我燒寫了一個非ubuntu源,更新源,結果把系統搞廢了,最後裝的ubuntu……

  直接更新ubuntu源並沒有什麼問題,具體操作是:執行sudo apt-get update(所有都按y確認)、sudo apt-get upgrade、sudo apt-get dist-upgrade,一開始更新源可能是一個漫長的過程,所以需要耐心,等待三個指令執行都執行完畢後,執行reboot進行重啟(因為樹莓派重啟了,所以可能需要重新尋找IP地址並連接)重啟後沒有什麼問題,那麼我們開始準備進行下一個環節了,搭建網站伺服器環境。

 

【0x04:配置網站伺服器環境】

  我是按照這個教程進行搭建的,所以就不再費力照寫了,直接放出教程鏈接: https://www.cnblogs.com/yooe/p/5827866.html

  在按照這個鏈接配置時,提幾個遇到的問題:(當然,在此之前一定需要更新完源,否則很可能找不到需要下載安裝的工具包)

    ①不可否認,教程是會存在一定的時效性的,所以教程中寫的是安裝版本需要我們自行設置,例如以上教程中安裝的是php5或者php7,我安裝的則是php7.4.1,如果不確定安裝版本,以安裝php為例,可以執行sudo apt-get install php7,那麼,系統會根據當前源中所有的工具包版本給出你詳細的版本提示,然後你再次輸入sudo apt-get install php7.x.x,就可以進行安裝了,安裝過程中如果有其他問題,自行百度。(相信一個教程是不可能包含所有問題的解決方法的……)

  在進行到以上教程的第三步,安裝php的兩個庫時,我只執行了sudo apt-get install libapache2-mod-php,原因時在執行sudo apt-get install libapache2-mod-php5時提示未找到該工具包,以重覆以上尋找php版本的方法進行安裝。(若兩個庫按照教程正常安裝可忽略)

  在進行以上教程的第五步驟時,我沒有用nano,而是使用vim 打開了/etc/apache2/sites-available/000-default.conf,因為未設置為圖形化界面,所以沒有辦法使用gedit工具。

  在重啟Apache2時遇到了報錯,按照它的格式,我先執行了sudo service apache2 stop,然後執行了sudo service apache2 start,同樣實現了sudo service apache2 restart的效果,雖然我不知道為什麼直接restart報錯,不過之後在執行sudo service apache2 restart就好用了。

  執行完教程中的第六部後,可以往/var/www/目錄下放一張簡單的Index.html,然後複製樹莓派的ip地址直接在與樹莓派連接的電腦瀏覽器中打開,如果可以正常打開,就表示網站環境搭建的差不多了,當然網站僅允許內網訪問,也就是他人還無法直接訪問你的網站,之後會介紹一種方法來實現外網訪問內網網站。

  我從源碼網站找到了一個論壇網站源碼,一開始我按照第七部使用wget+空格+下載地址連接的方法成功將網站源碼下載到了樹莓派中,當然,在此之前ubuntu系統提示沒有wget工具,使用sudo apt-get install wget下載安裝wget,然後使用wget工具下載網站源碼,下載完後發現,網站源碼是一個壓縮包,我們需要解壓,我的這個壓縮包格式是.zip,當然還有其他格式,例如.rar、.gz等等,自行百度相關格式的壓縮包解壓方法。

  將網站源碼的所有內容直接解壓道/var/www/目錄下,註意,/var/www/目錄下直接放網站源碼的多個文件。舉例說明:

/var/www/文件夾/多個網站源碼文件  

/var/www/多個網站源碼文件  (這才是對的!)

 

【0x05:配置網站環境設置】

  當目前為止,網站環境已經搭建的差不多了,下麵複製樹莓派的IP地址,進行網站初始化配置,當然有些網站不需要初始話配置,但是,我使用的是論壇源碼,所以需要進行論壇初始化配置。

  在進行論壇配置的過程中,我發現網站打在環境檢測並沒有完全通過,有幾項沒有通過,其中包括必須支持的幾項,例如:gd庫、mysqli、pdo、pdo-mysql等,

  這裡發現個問題,就是我在安裝完gd庫之後,並重啟apach2,重新檢測環境,發現gd庫支持和pdo支持都通過了。同樣的,安裝mysqli(註意,這裡是mysqli)之後,發現mysqli支持和pdo-mysql支持也都通過了。

  安裝gd等庫的具體方法可參考:https://blog.csdn.net/qq_35038153/article/details/78409410

  需要註意的是php的版本要根據你安裝的PHP版本進行更改,以我為例,我安裝的php 版本是7.4.1,所以指令改成了apt-get install php7.4-gd,這裡我需要說明一下為什麼不直接寫 apt-get install php7-gd,而是 apt-get install php7.4-gd,這裡給出一個有關版本號的說明教程:https://blog.csdn.net/yaowanliang/article/details/90645736

7是版本號,4是功能號,所以我感覺需要些7.4,不過結果正如我所願,安裝完成。

  然後,就是配置網站資料庫,在這裡我遇到了提示“資料庫連接失敗,請重新設定”的問題,目前未解決。

  【更新】解決“資料庫連接失敗,請重新設定”的方法。通過查找網上資源,發現還是沒有搞清楚建立資料庫的信息,例如:資料庫地址、資料庫用戶名、資料庫密碼、資料庫名。一會兒我會放出具體教程地址,但這裡我需要說明一下,我並沒有完全按照這個教程中的內容去做,例如修改資料庫的配置信息什麼的,我僅僅是從中找到了查看資料庫配置信息的方法,然後按照配置信息填寫對了數據,網站就創建成功了。

  具體查看資料庫配置數據的指令:sudo cat /etc/mysql/debian.cnf

  經過查找後,你會發現,host(資料庫地址)、user(資料庫用戶)、password(資料庫密碼)並不是127.0.0.1、root、xxxx,所以還是以自己查看到的配置數據為主,在進行填寫時,我沒有動資料庫名稱那一欄,論壇預設填寫了一個名字,但是它提示說資料庫不存在,系統會自動添加,所以可以跳過資料庫名稱這一項。

  最後耐心等待幾分鐘,創建完成!!!!

  參考教程:https://blog.csdn.net/qq_38737992/article/details/81090373


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在實際運行中,好好運行的程式出現了以下問題: 2019-12-27 10:40:00,164 [DefaultQuartzScheduler_Worker-2] ERROR IBeam.BCPool.Objects.CloudPowerIncome [(null)] - AutoSynchroniz ...
  • 在.Net Core 2.x 版本,Microsoft 官方沒有提供 .Net Core 正式版的多語言安裝包。因此,我們在用.Net Core 2.x 版本作為框架目標編寫代碼時,智能提成是英文的。那對於剛轉.Net Core的我,再加上英語不好,真是頭疼。 隨著.Net Core 3.x 版本的 ...
  • 本筆記摘抄自:https://www.cnblogs.com/liqingwen/p/5814204.html,記錄一下學習過程以備後續查用。 一、統計單詞在字元串中出現的次數 請註意,若要執行計數,請先調用Split方法來創建詞數組。Split方法存在性能開銷,如果對字元串執行的唯一操作是計數詞, ...
  • 大家好我又回來了,前幾天講過一個關於Jwt的身份驗證最簡單的案例,但是功能還是不夠強大,不適用於真正的項目,是的,在真正面對複雜而又苛刻的客戶中,我們會不知所措,就現在需要將認證授權這一塊也變的複雜而又實用起來,那在專業術語中就叫做自定義策略的API認證,本次案例運行在.NET Core 3.0中,... ...
  • 程式寫日誌文件時該不該加鎖 日誌(log) 為了讓自己的思路更加清晰,下麵我都會稱日誌為 log。因為日誌這個詞有兩種含義,詳情見百度百科釋義或者維基百科釋義。 日記的另一種說法。“志”字本身為“記錄”的意思,日誌就為每日的記錄(通常是跟作者有關的)。 伺服器日誌(server log),記錄伺服器 ...
  • 一、休眠概述 休眠,簡而言之就是設備在不需要工作的時候把一些部件、外設關掉(掉電或讓它進入低功耗模式)。 為什麼要休眠呢?一言以蔽之:省電。 休眠分主動休眠和被動休眠。主動休眠:比如我電腦不用了,就通過設置讓系統進入休眠模式;被動休眠:系統檢測到自己閑的慌,為了節約故,自己就休眠去了。 廢話不敘。 ...
  • 配置虛擬主機 vi /usr/local/apache2.4/conf/httpd.conf 搜索httpd-vhost,刪除行首#號 vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf <VirtualHost *:80> ServerAdmi ...
  • 碰到問題解決過程 剛在一個新的機器上裝node環境時,要用一個nrm管理鏡像源時。報了一個錯,如圖1 然後去網上查,說是許可權的問題,執行命令 可以解決問題。 然後我就按照操作做了,又報錯了。這次的錯誤如圖2: 錯誤說是具體策略覆蓋了剛更新的策略,程式仍然保持原有的執行策略。反正最終結果就是未生效唄, ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...