嵌入式 webserver 搭建

  • BOA
    2.编译安装boa
    2.1 下载解压boa-0.94.13.tar.gz(www.boa.org)
    2.2 在src 目录下运行./configure
    2.3 修改Makefile
    CC = arm-linux-gcc
    CPP = arm-linux-gcc–E
    2.4 将boa.c 文件中以下几行判断去掉
    if ( setuid ( 0 ) != - 1 ) {
    DIE ( “icky Linux kernel bug!” );
    }
    2.5 修改文件compat.h P120
    #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
    修改成
    #define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff
    2.6 把src 文件夹下的config.c 里的if(!server_name){…} (大概在266 行到286 行之间)注释掉
    否则Error :gethostbyname:: Resource temporarily unavailable
    2.7 修改 src/log.c
    注释掉
    if (dup2(error_log, STDERR_FILENO) == -1) {
    DIE(“unable to dup2 the error log”);
    }
    否则Error:log.c:73 unable to dup2 the error log:bad file descriptor
    2.8 chmod 777 boa
    2.9 自动启动boa :在/etc/profile 中启动boa
    2.10 make && arm-linux-strip boa 去掉调试信息
    可以编译出boa 可执行文件,下面是对文件系统的修改
    2.11 建立/etc/boa/boa.conf 可以从boa 源码里拷贝boa.conf
    2.12 修改boa.conf 文件
    2.13 编译烧录cramfs
1.用户可以根据自己需要,对boa.conf 进行修改,但必须要保证其他的辅助文件和设置必须和boa.conf 里的配置相符,不然Boa 就不能正常工作。 
2.在上面的例子中,
   我们还需要创建日志文件所在目录/mnt/log/boa ,
   创建HTML 文档的主目录/mnt/www ,
   将mime.types 文件拷贝 到/etc 目录,
   创建CGI 脚本所在目录/var/mnt/cgi-bin/ ,
   mime.types 文件用来指明不同文件扩展名对应的MIME 类型,一般 可以直接从Linux 主机上拷贝一个,大部分也都是在主机的/etc 目录下,
   etc 目录里还要有passwd group mime.types 等文件,
   可执行文件boa 放在/bin 下面,
  • CGIC

1.1 下载并解压 tar -zxvf cgic205.tar.gz(http://www.boutell.com/cgic/)
1.2 修改并配置

  		cd cgic205
  		修改Makefile 文件
  		a. 找到CC=gcc ,将其改成CC=arm-linux-gcc ,
  		b. 找到AR=ar ,将其改成AR=arm-linux-ar ,
  		c. 找到RANLIB=ranlib ,将其改成RANLIB=arm-linux-ranlib 。
  		e. 找到gcc cgictest.o -o cgictest.cgi ${LIBS} ,
  		将其改成$(CC) $(CFLAGS) cgictest.o -o cgictest.cgi ${LIBS} ,
  		f. 找到gcc capture.o -o capture ${LIBS} ,
  		将其改成$(CC) $(CFLAGS) capture.o -o capture ${LIBS} ,

1.3 测试CGCI
将capture 和cgictest.cgi 拷贝到主机的/var/www/cgi-bin 目录下。
在工作站的浏览器地址栏输入http://192.168.0.12/cgi-bin/cgictest.cgi ,可以看到页面,CGIC 库和测试脚本都移植成功。
将.cgi 文件拷贝至目标板上后,必须改变其权限chmod 755 *
否则,上位机浏览时会提示
502 Bad Gateway
The CGI was not CGI / 1 . 1 compliant .
不能上传的话,把GET 改成POST
把用户权限由 nobody 改成 root
1.4 CGI简介

CGI全称Common Gateway Interface,是一种编程接口,不论什么语言,只要按照该接口的标准编写出来的程序,即可叫做 CGI 程序。CGI 程序的输入/输出是使用编程语言的标准输入 / 标准输出,所以用 C/C++ 来写 CGI 程序就好象写普通程序一样,不过还有几样东西要注意的。 
CGI 程序的通信方式 :
当有数据从浏览器传到 Web 服务器后,该服务器会根据传送的类型(基本有二类: GET/POST ),将这些接收到的数据传入 QUERY_STRING或 变量中, CGI 程序可以通过标准输入,在程序中接收这些数据。当要向浏览器发送信息时,只要向 Web 服务器发送特定的文件头信息,即可通过标准输出将信息发往 Web 服务器, Web 服务器处理完这些由 CGI 程序发来的信息后就会将这些信息发送给浏览器。这样就是 CGI 程序的通信方式了。 
接收数据 :
用 GET 方式接收到的数据保存在 Web 服务器的 QUERY_STRING 变量里,而通过 POST 方式接收到的数据是保存在 这个 Web 服务器变量里。它们的唯一区别就是:以 GET 方式接收的数据是有长度限制,而用 POST 方式接收的数据是没有长度限制的。并且,以 GET 方式发送数据,可以通过 URL 的形式来发送,但 POST 方式发送的数据必须要通过 Form 才到发送。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值