歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

移植BOA服務器到GEC2440開發板

所需軟件:boa-0.94.13.tar.tar

下載在Linux公社的1號FTP服務器裡,下載地址:

FTP地址:ftp://www.linuxidc.com

用戶名:www.linuxidc.com

密碼:www.muu.cc

在 2011年LinuxIDC.com\10月\Boa Web服務器在PC上移植

下載方法見 http://www.linuxidc.net/thread-1187-1-1.html

相關閱讀: Boa Web服務器在PC上移植 http://www.linuxidc.com/Linux/2011-10/44729.htm

步驟:

設置好交叉編譯工具鏈。

1、解壓下載好的壓縮包(tar xzvf boa-0.94.13.tar.tar),並進入解壓後的目錄(cd boa-0.94.13),再進行如下操作:

   先進入到src目錄(下面操作都是在該目錄下進行):

   cd src

生成Makefile文件:

   ./configure

   修改Makefile文件:

   將

   CC = gcc

CPP = gcc –E

   修改為:

   CC=arm-linux-gcc

   CPP=arm-linux-gcc –E

   修改defines.h文件:

   將#define SERVER_ROOT “/etc/boa”修改為#define SERVER_ROOT “/var/www”

   該處定義的是WEB服務器的文件根目錄,只要跟boa.conf文件中的DocumentRoot一致即可。

   接下來編譯boa:

   make

   arm-linux-strip boa     //去掉相關調試信息,把生成的boa減小

   在make時出現如下錯誤提示:

   util.c:100:1: pasting "t" and "->" does not give a valid preprocessing token

   解決方法(參考http://www.linuxidc.com/Linux/2011-10/44749.htm):

修改compat.h文件:

#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff

修改成

#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff

2、在解壓後的boa源碼目錄下有個boa.conf文件,對它進行如下修改:

1)、Group的修改:

   將Group nogroup修改為Group 0

   由於在根文件系統中的/etc/group文件中沒有nogroup組,所以設成0。在/etc/passwd中有nobody用戶,所以User nobody不用修改。

2)、將相關日志文件存放位置項注釋掉,不保存日志文件:

    ErrorLog /var/log/boa/error_log

AccessLog /var/log/boa/access_log

3)、ServerName的設置:

    將#ServerName www.your.org.here前面的#號去掉,該項默認為未打開,執行Boa會異常退出,提示“gethostbyname::No such file or directory”,所以必須打開。

4)、將DirectoryMaker /usr/lib/boa/boa_indexer注釋掉。

5)、將MimeTypes /etc/mime.types修改為:MimeTypes /var/www/mime.types。

6)、將DefaultType text/plain修改為:DefaultType text/html。

7)、將Alias /doc /usr/doc注釋掉。

8)、SccriptAlias的設置:

    將ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/修改為:

    ScriptAlias /cgi-bin/ /var/www/cgi-bin/

3、接下來的操作在開發板的根文件系統下進行操作:

   在/var目錄下創建www目錄:

   mkdir /var/www

   進入到創建好的目錄下,進行下面操作:

   創建cgi-bin目錄:mkdir cgi-bin

   把生成的boa和配置好的boa.conf文件及主機下的/etc/mime.types文件都復制到板上的/var/www目錄下,並在該目錄下創建一文件index.html,文件內容如下:

   <html>

   <head>

<title>BOA TEST</title>

</head>

   <body>

   <h1>BOA TEST</h1>

   </body>

   </html>

   進入到板上的/var/www目錄下,執行./boa,可以看到如下啟動信息:

   [root@GCX2440 www]# ./boa

[root@GCX2440 www]# [28/Mar/2010:12:27:11 +0000] boa: server version Boa/0.94.13

[28/Mar/2010:12:27:11 +0000] boa: server built Mar 28 2010 at 10:06:35.

[28/Mar/2010:12:27:11 +0000] boa: starting server pid=1007, port 80

   在主機上啟動浏覽器,輸入URL為http://192.168.0.2,訪問板上的BOA服務,效果如下:

   此時板上串口輸出如下信息:

   [28/Mar/2010:12:27:16 +0000] request from 192.168.0.1 "GET /favicon.ico HTTP/1.1" ("/var/www/favicon.ico"): document open: No such file or directory

   是因為沒有該圖標文件,不過不影響。

  測試完靜態頁面後,接下來測試CGI腳本文件:

  在主機上創建一文件helloworld.c,文件內容如下:

   #include<stdio.h>

int main()

{

        printf("Content-type:text/html\n\n");

        printf("<html>\n");

        printf("<head><title>BOA TEST</title></head>\n");

        printf("<body>\n");

        printf("<h1>BOA CGI TEST</h1>\n");

        printf("</body>\n");

        printf("</html>\n");

        exit(0);

}

  然後用交叉編譯工具鏈編譯,將得到的helloworld文件復制到板上的/var/www/cgi-bin目錄下:

   編譯:arm-linux-gcc –o helloworld helloworld.c

 在浏覽器輸入http://192.168.0.2/cgi-bin/helloworld,可以看到如下效果:

  至此,BOA服務器移植成功!

Copyright © Linux教程網 All Rights Reserved