開發板搭建簡單的Web服務器

開發板搭建簡單的Web服務器

BOA服務器是一個小巧高效的web服務器,是一個運行於Linux或unix下的,支持CGI、適合於嵌入式的單任務的服務器,源代碼開放,性能高

BOA是非常小巧的web服務器,其可執行代碼僅60kb左右,作爲單任務的web服務器,BOA只能依此完成用戶的請求,而不會創建子進程處理併發連接請求,但由於BOA支持CGI,因此它能夠爲CGI創建一個新的進程

CGI在物理上是一段程序,運行在服務器上,提供客戶端的HTML頁面的接口,即客戶端和服務器的接口

在開發板上搭建web服務器

  1. boa的拷貝和解壓

    首先,登錄boa的官網:www.boa.org下載壓縮包,之後將文件下載到Ubuntu並解壓

    解壓命令:tar xvzf boa-0.94.13.tar.gz,之後進入boa-0.94.13

    鏈接:https://pan.baidu.com/s/1F4XfwZBE4BZYmHQwbe8Twg 
    提取碼:hig8 
    
  2. boa生成Makefile編譯文件

    進入src目錄,運行./configure以生成Makefile編譯文件

    修改Makefile,將編譯工具改爲交叉編譯工具

    /*
    打開Makefile,將31行左右的CC=gcc更改爲CC=arm-none-linux-guneabi-gcc -static
    將32行左右的CPP=gcc -E更改爲CPP=arm-none-linux-guneabi-gcc —E -static
    保存退出
    輸入make開始編譯
    
    編譯過程中會提示錯誤:
    util.c: In function 'get_commonlog_time':
    util.c:100: error: pasting "t" and "->" does not give a valid preprocessing token
    make: *** [util.o] Error 1
    make: *** Waiting for unfinished jobs....
    
    只需按照提示打開compat.h文件,將第120行的#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
    更改爲:#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff即可
    保存退出,使用make編譯文件
    */
    

    使用ls命令查看boa是否生成成功,再使用ll boa查看boa可執行文件的大小是否爲932743

    之後可以使用以下命令爲boa可執行文件瘦身

    arm-none-linux-gnueabi-strip boa
    

    之後再次查看boa文件大小,發現減小至642340

  3. 在開發板終端輸入:mount -t nfs 192.168.3.38:/home/linuxsystemcode/ /mnt -o nolock

    其中,192.168.3.38爲Ubuntu的IP地址

  4. 準備開發板相關運行環境

    • 將boa可執行文件複製到開發板/bin目錄下
    • 在開發板下創建/www文件夾(根目錄下創建www),並在其中創建cgi-bin目錄
    • 在www目錄下創建服務器端的html文件index.html(不能更改文件名)
    • 拷貝boa-0.94.13目錄下默認的boa.conf到/etc/boa(在/etc下新建boa)
    • 將虛擬機/etc目錄下的mime.types複製到開發板/etc目錄
    • 在開發板/etc目錄下,使用vi創建文件group,並添加root:*:0:
  5. 修改配置文件(也可以先修改文件之後再複製到開發板)

    • 打開boa.conf文件(/etc/boa)
    • 將第50行左右的,Group nogroup,替換爲Group root
    • 將第95行左右的,#Servername www.your.org.here,替換爲Servername www.your.org.here
    • 將第115行左右的,DocumentRoot /var/www,替換爲DocumentRoot /www
    • 將第194行左右的,ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/,替換爲ScriptAlias /cgi-bin/ /www/cgi-bin/
  6. 添加自動運行腳本

    • 打開/etc/init.d/rcS文件,在文件末尾添加boa &

    測試web服務器

    最後,開發板終端輸入ifconfig查看開發板IP地址(客戶端必須是同一網段),在任意設備網絡設備中輸入:

http://192.168.3.20(開發板IP),即可出現以下結果

在這裏插入圖片描述

程序中所用的index.html文件內容如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>iTOP-4412</title>
<style type="text/css">
<!--
.STYLE1 {font-size: 36px}
body {
	background-color: #996600;
}
-->
</style>
</head>

<body>
<table width="613" height="424" border="0" align="center">
  <tr>
    <td colspan="2" align="center" valign="middle"><h2 class="STYLE1">iTOP-4412 WEB SERVER </h2></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章