當前位置:菜譜大全網 - 菜譜 - 免費網絡服務器安裝教程免費網絡服務器安裝教程

免費網絡服務器安裝教程免費網絡服務器安裝教程

1.什麽是寶兒?

BOA是壹個非常緊湊的Web服務器,源代碼開放,性能優秀,支持CGI通用網關接口技術,特別適合嵌入式系統。

BOA服務器的主要功能是在互聯的嵌入式設備之間交換信息,從而通過網絡對嵌入式設備進行監控,並將反饋信息自動上傳到主控設備。它基於HTTP超文本傳輸協議,網頁是Web服務最基本的傳輸單位。

嵌入式Web服務的工作基於客戶機/服務器計算模式,由Web瀏覽器和Web服務器組成,即著名的B/S結構。客戶端運行的瀏覽器首先要與嵌入式Web服務器BOA建立連接,打開壹個SOCKET虛擬文件,表示SOCKET連接已經建立成功。然後客戶端瀏覽器通過socket套接字以GET或POST參數傳遞的形式向Web服務器提交請求,Web瀏覽器提交請求並通過HTTP協議發送給Web服務器。Web服務器收到請求後,根據不同的請求進行事務處理,返回HTML文件或通過CGI調用外部應用程序,並返回處理結果。

服務器通過CGI與外部應用程序和腳本進行交互。根據客戶端瀏覽器在請求時所采用的方法,服務器將收集客戶端提供的信息並發送給指定的CGI擴展程序,該程序將對信息進行處理並將結果返回給服務器,然後服務器將對信息進行分析並將結果發送回客戶端以在瀏覽器上顯示。

二、寶兒移植步驟

平臺:ubuntu16.04版本:boa-0.94.13.tar.gz

1.下載地址:

3.安裝詞法分析器

$sudoapt-getinstallbison

$sudoapt-getinstallflex

Yacc是語法分析器的生成器,bison是yacc的GNU版本。萊克斯和YACC是構建詞法分析器和語法解釋器的工具。通過使用萊克斯和YACC,妳可以很容易地構造壹個語法解釋器。

4.修改編碼

Src/compat.h打開文件。

src/兼容性. h

修改

120:# define time zone _ offset foo # #-TM _ GMT off

120:# define time zone _ OFFSET-TM _ GMT off

Src/log.c打開文件:

src/log.c

3 .美國銀行

5.編譯彭@ Ubuntu:~/boa/boa-0 . 94 . 13 $ CD src/

彭@ Ubuntu:~/boa/boa-0 . 94 . 13/src $。/configure-prefix =/home/Peng/boa/boa-0 . 94 . 13/tmp

彭@ Ubuntu:~/boa/boa-0 . 94 . 13/src $ make

彭@ Ubuntu:~/boa/boa-0 . 94 . 13/src $ sudomkdir/etc/boa

彭@ Ubuntu:~/boa/boa-0 . 94 . 13/src $ sudocp../boa.conf/etc/boa

6.修改配置文件boa.conf

修改access log/var/log/boa/access _ log。

就是# access log/var/log/boa/access _ log。

其中,#表示評論。在文件中,我們可以找到#後面的內容,然後在#下面添加內容。

BoaWebserver配置參數描述:

端口:boa服務器監聽的端口:BOA。默認端口是80。如果端口小於1024,則root用戶必須啟動服務器。

監聽:綁定的ip地址。如果沒有此參數,所有地址都將被綁定。

用戶:連接到服務器的客戶端的標識,可以是用戶名或UID。

組:連接到服務器的客戶端組,可以是組名或GID。

ServerAdmin:當服務器出現故障時要通知的電子郵件地址。

ErrorLog:指定錯誤日誌文件。如果路徑不是以“/”開頭,則它是相對於ServerRoot路徑的。如果沒有配置,默認文件是/dev/stderr。如果您不想記錄日誌,請將該文件指定為/dev/null。

AccessLog:設置訪問日誌文件,類似於ErrorLog。

UseLocaltime:設置為使用本地時間,並在使用UTC時註釋此參數。該參數沒有值。

VerboseCGILogs:在錯誤日誌文件中記錄CGI的開始和停止時間。如果沒有,請註釋此參數。該參數沒有值。

ServerName:指定服務器的名稱,並在客戶端使用gethostname+gethostbyname時將其返回給客戶端。

虛擬主機:虛擬主機交換機。使用該參數,壹個ip地址將被添加到DocumentRoot設置的目錄中,作為新的DocumentRoot來處理客戶端的請求。如果DocumentRoot設置為/var/www,則為4。錯誤摘要。

1.有必要在董事會的/etc下建立壹個boa目錄。

2.「cantopoenboa.conf for reading」解決方案:不僅把boa.conf配置文件放在妳放boa的目錄下,還把boa.conf文件放在板卡的/etc/boa下,這樣系統在運行boa的時候就可以讀取boa.conf文件。

3.“unable toup 2 TheErrorlogbadFileDescriptor”的解決方法:在boa源代碼的log.c中,也就是src文件夾下,對第73行的if語句進行註釋。

4.無法啟動2錯誤日誌:錯誤文件描述符解決方案:在boa.conf中,註釋掉“# access log/var/log/boa/access _ log”。

5.“boa.c:226-ickyLinuxkernelbug!:Nosuchfileordirectory”解決方案:在boa源代碼中,也就是src文件夾下,註釋掉boa.c中第226行的if語句。

6.gethostbyname::resourcetermoraliyunavailable解決方案:刪除“#ServerNamewww.your.org.here”中的#號。

七../boa:1:syntaxerror:這個函數必須有返回值,否則會報錯。

11.運行網頁時總有錯誤:“mkstemp:nosuchfileordectory”解決方案:不能用post,只能用get。因為post模式需要創建壹個新的臨時文件,所以需要使用mkstemp函數。該功能是在系統中創建壹個具有唯壹文件名的文件並打開,只有當前用戶可以訪問這個臨時文件。所以權限不夠,不然其他任何問題都會被報成這個錯誤。然後用get!這裏的具體原因和細節筆者暫時不是很清楚。...

12.直接寫系統函數的C程序,用arm-linux-gcc在板上編譯就能執行,用cgi寫就不壹定能執行。因為涉及到cgi的權限問題。即使您的cgi-bin文件夾中的所有cgi可執行文件都被授予了權限,它們也可能不可執行。

解決方法是看妳的boa.conf裏的權限是怎麽設置的。這裏正確的應該是將“UsernobodyGroupnogroup”改為“UserrootGroup0”,否則無法正確實現!妳會發現妳的cgi可執行程序的其余部分都被執行了,只有這個系統函數沒有被執行!

動詞 (verb的縮寫)修改參數的描述

組的修改:

將Groupnogroup修改為Group0Group,以表示連接到服務器的客戶端組,可以是組名或GID。

用戶的修改

將Usernobody修改為User0User:連接到服務器的客戶端的標識,可以是用戶名,也可以是UID。

腳本別名的修改

將script alias/CGI-bin//usr/lib/CGI-bin/修改為script alias/CGI-bin//www/CGI-bin/script alias:指定腳本路徑的虛擬路徑。

文檔根的修改

將DocumentRoot/var/www修改為document root/WWW document root:HTML文件的根目錄。

服務器名的設置

將#ServerNamewww.your.org.here修改為ServerNamewww.your.org.here,否則出現錯誤“gethostbyname::nosuchfileordirectory”servername:指定服務器的名稱,並在客戶端使用gethostname+gethostbyname時返回給客戶端。

不及物動詞補充

在本文的基礎上,後續將繼續講解HTTP協議,並實現壹個基於該服務器的物聯網集成方案。