arm7上搭建boa並進行測試cgi+html

參考兩篇帖子php

http://blog.csdn.net/bull_liu/article/details/7486298 boa移植html

http://blog.csdn.net/wang_walfred/article/details/46728499 cgi+html測試文檔linux

1.下載源碼:c#

下載網址http://www.boa.org/boa-0.94.13.tar.gz,但實際上下載的包爲boa-0.94.13.tar.tar瀏覽器

2.解壓源碼包:工具

將源碼拷貝到/usr/src目錄下,post

#tar -xvf boa-0.94.13.tar.tar測試

以後,會在/usr/src目錄下生成boa-0.94.13目錄。flex

3.修改源碼:ui

①修改boa-0.94.13/src目錄下的boa.c源文件,大概在225行,註釋掉以下語句:

if (setuid(0) != -1){

          DIE("icky Linux kernel bug!");

}

註釋掉的具體緣由尚未弄懂!正在研究中……不註釋沒法使用post方法。

②修改boa-0.94.13/src目錄下的compat.h頭文件,大概在120行,修改以下:

將foo##->tm_gmtoff中的##去掉便可,否則在編譯時會出現:

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

具體緣由多是使用了較高版本的編譯器。

4.執行configure:

在boa-0.94.13/src目錄下執行configure:

#./configure

以後會生成Makefile文件

5.修改Makefile文件:

修改boa-0.94.13/src目錄下的Makefile文件,修改以下:(前提是已配置好交叉編譯工具鏈)

將CC = gcc修改成CC=arm-none-linux-gnueabi-gcc

將CPP = gcc -E 修改成CPP=arm-none-linux-gnueabi-gcc -E

6.執行make:

在boa-0.94.13/src目錄下執行make:

#make

通常make不過

      debian:/home/a/boa-0.94.13/src# make 
  yacc -d boa_grammar.y 
  make: yacc: Command not found 
  make: *** [y.tab.c] Error 127 
  解決方法: 
  debian:/home/a/boa-0.94.13/src# sudo apt-get install bison 
  錯誤2: 
  debian:/home/a/boa-0.94.13/src# make 
  lex boa_lexer.l 
  make: lex: Command not found 
  make: *** [lex.yy.c] Error 127 
  解決方法: 
  debian:/home/a/boa-0.94.13/src#sudo apt-get install flex 

以後會在boa-0.94.13/src目錄下生成boa可執行文件,便可以在ARM板子上運行的程序。

7.在開發板上建立執行目錄:

#mkdir /var/www                (若是有了,就省略)

#mkdir /var/www/cgi-bin

#mkdir /var/log

#mkdir /var/log/boa

#mkdir /etc/boa

將在boa-0.94.13/目錄下的boa.conf文件拷貝到開發板/etc/boa目錄下;

將宿主機中/etc/mime.types文件拷貝到開發板/etc目錄下;

將boa-0.94.13/src目錄下的boa拷貝到開發板/bin目錄下(或其餘默認系統路徑);

8.修改boa.conf文件:

①修改48行:User nobody 爲 User root

修改48行:User group 爲  User root

②修改193行:ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 爲 ScriptAlias /cgi-bin/  /var/www/cgi-bin/

至此,boa移植完畢。

一、編寫HelloworldCGI.c程序

[tekkamanninja@Tekkaman-Ninja source]$ vi helloworldCGI.c

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
        printf("Content-type: text/html\n\n");
        printf("<html>\n");
        printf("<head><title>CGI Output</title></head>\n");
        printf("<body>\n");
        printf("<h1>Hello,world.</h1>\n");
        printf("<body>\n");
        printf("</html>\n");
        exit(0);
}


交叉編譯
arm-none-linux-gnueabi-gcc hellowworld.c -o helloworld

(主程序的程序開頭必定要用Tab,而不是空格,否則編譯可能不經過)

放到/var/www/cgi-bin/下

瀏覽器輸入
   http://192.168.1.2/cgi-bin/helloworld

網頁出現 Hello,world. 調試成功!

相關文章
相關標籤/搜索