嵌入式Web伺服器移植

來源:互聯網
上載者:User
嵌入式Web伺服器移植

文章一

轉載自:http://hi.baidu.com/wdr_cloud/item/129f8417e34838ecddeeca57

僅供個人學習之用,請勿用於他途。

***************S3C2410,linux2.6.22.6的核心,交叉編譯:arm-softfloat-linux-gnu-gcc(4.3.2)

1、下載源碼   http://ww.boa.org  (boa-0.94.13.tar.gz)

2、解壓源碼,進入源碼檔案夾;cd boa-0.94.13/src    執行./configure   產生Makefile檔案;

3、修改Makefile檔案

            

修改 CC = gcc

為 CC = arm-softfloat-linux-gnu-gcc

修改 CPP = gcc - E

為 CPP = arm-softfloat-linux-gnu-gcc -E

4、   編譯    make

util.c:100:1: pasting "t" and "->" does not give a valid preprocessing token
make: *** [util.o] Error 1

解決方案:

修改compat.h中的
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
為:
#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff

修改完之後在make  就ok了  

5.arm-softfloat-linux-gnu-strip boa;

Boa的配置

  Boa需要在/etc目錄下建立一個boa目錄,裡面放入Boa的主要設定檔boa.conf。在Boa源碼目錄下已有一個樣本boa.conf,可以在其基礎上進行修改。

1.    Group nogroup修改成Group 0,由於在/etc/group檔案中沒有nogroup組,所以設成0

另外在/etc/passwd中有nobody使用者,所以User nobody不用修改。

2.    ScriptAlias /cgi-bin/  /usr/lib/cgi-bin/ 修改成 ScriptAlias /cgi-bin/  /var/www/cgi-bin/

其它預設設定即可。

還需要建立記錄檔所在目錄/var/log/boa,建立HTML文檔的主目錄/var/www,將靜態網頁存入該目錄下(可以將主機/usr/share/doc/HTML/目錄下的index.html檔案和img目錄複寫到/var/www目錄下),建立CGI指令碼所在目錄/var/www/cgi-bin,將cgi的指令碼存放在該目錄下。另外還要將mime.types檔案複製/etc目錄下,通常可以從linux主機的/etc目錄下直接複製即可。

Boa的執行

    實際運行時,可以將index.html檔案、img目錄和mime.types檔案放到CF卡目錄下,建立目錄後,拷貝至相應目錄。

在開發板上運行 boa   檢查連接埠是否被開啟,要不瀏覽器無法訪問到板子。

直接在瀏覽器中輸入192.168.10.12/index.html   靜態HTML調試成功。

CGI指令碼測試

編寫helloworld.c 程式

#include <stdio.h>

int main(void)

{
         printf("Content-type:text/html\n\n");
        printf("<html>\n");
         printf("<head><title>CGI Qutput</title></head>\n");
        printf("<body>\n");
         printf("<h1>Hello,world.</h1>\n");
         printf("<body>\n");
         printf("</html>\n");
        exit(0);
}

 交叉編譯產生helloworld.cgi

#arm-softfloat-linux-gnu-gcc -o helloworld.cgi helloworld.c

 將helloworld.cgi拷貝至/var/www/cgi-bin/下,瀏覽器輸入

http://192.168.10.12/cgi-bin/helloworld.cgi

在頁面上出現

Hello,world.

文章二:

轉載自:http://blog.sina.com.cn/s/blog_7bd0d88201011euz.html

僅供個人學習之用,請勿挪用他途。

《嵌入式Linux系統開發詳解——基於EP93XX系列ARM》一書和boa內建的文檔等對該內容有比較詳細的介紹,但在實驗過程中,仍可能會出現一些問題。下面是我在WNC201系統(AT91RM9200)上的移植過程,歡迎討論!

第一步 Boa程式的移植

1、下載Boa源碼

:
http://www.boa.org/,或者http://sourceforge.net
最新發行版本: 0.94.13  
下載boa-0.94.13.tar.gz,注意:從boa上下載的是boa-0.94.13.tar.tar,解壓方式一樣  
解壓:# tar xzf boa-0.94.13.tar.gz

2、產生Makefile檔案

直接運行src/configure檔案

3、修改Makefile檔案

  a、

修改 CC =gcc
為 CC =/usr/local/arm/2.95.3/bin/arm-linux-gcc

  b、

修改 CPP = gcc - E
為 CPP = /usr/local/arm/2.95.3/bin/arm-linux-gcc-E


4、編譯

  # make
  #/usr/local/arm/2.95.3/bin/arm-linux-strip boa

第二步 Boa的配置

Boa需要在/etc目錄下建立一個boa目錄,裡面放入Boa的主要設定檔boa.conf。在Boa源碼目錄下已有一個樣本boa.conf,可以在其基礎上進行修改。

1、Group的修改

修改 Group nogroup
為 Group 0

   由於在/etc/group檔案中沒有nogroup組,所以設成0。另外在/etc/passwd中有nobody使用者,所以Usernobody不用修改。

2、ScriptAlias的修改

修改 ScriptAlias/cgi-bin/  /usr/lib/cgi-bin/
為 ScriptAlias/cgi-bin/  /var/www/cgi-bin/


3、ServerName的設定

修改 ServerNamewww.your.org.here
為 ServerName
www.your.org.here

   注意:該項預設為未開啟,執行Boa會異常退出,提示“gethostbyname::No such file ordirectory”,所以必須開啟。其它預設設定即可。

第三部:Boa的執行

  成功配置以後,還需要建立記錄檔所在目錄/var/log/boa,建立HTML文檔的主目錄/var/www,將靜態網頁存入該目錄下(可以將主機/usr/share/doc/HTML/目錄下的index.html檔案和img目錄複寫到/var/www目錄下),建立CGI指令碼所在錄/var/www/cgi-bin,將cgi的指令碼存放在該目錄下。另外還要將mime.types檔案複製/etc目錄下,通常可以從linux主機的/etc目錄下直接複製即可。


  實際運行時,可以將index.html檔案、img目錄和mime.types檔案放到CF卡目錄下,建立目錄後,拷貝至相應目錄。


  製作run.sh


mkdir/etc/boa
cp /cf/boa/boa.conf /etc/boa/
mkdir /var/log
mkdir /var/log/boa
mkdir /var/www
cp /cf/boa/index.html /var/www/
cp -r /cf/boa/img /var/www/
mkdir /var/www/cgi-bin
cp /cf/boa/mime.types /etc/
cp /cf/boa/boa /

./boa &

   直接在瀏覽器中輸入http://192.168.1.107,出現Red Hat的歡迎網頁。靜態HTML調試成功。

第四步 CGI指令碼測試

1、編寫Helloworld.c程式

#include<stdio.h>

int main(void)
{
       printf("Content-type: text/html\n\n");
       printf("<html>\n");
       printf("<head><title>CGIOutput</title></head>\n");
       printf("<body>\n");
       printf("<h1>Hello,world.</h1>\n");
       printf("<body>\n");
       printf("</html>\n");
       exit(0);
}


  交叉編譯產生helloworld.cgi
# /usr/local/arm/2.95.3/bin/arm-linux-gcc -ohelloworld.cgi helloworld.c

2、瀏覽

   將helloworld.cgi拷貝至/var/www/cgi-bin/下,瀏覽器輸入:http://192.168.1.107/cgi-bin/helloworld.cgi


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.