嵌入式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.
文章二:
转载自:
仅供个人学习之用,请勿挪用他途。
第一步 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文件
修改 CC =gcc 为 CC =/usr/local/arm/2.95.3/bin/arm-linux-gcc |
修改 CPP = gcc - E 为 CPP = /usr/local/arm/2.95.3/bin/arm-linux-gcc-E |
4、编译
第二步 Boa的配置
Boa需要在/etc目录下建立一个boa目录,里面放入Boa的主要配置文件boa.conf。在Boa源码目录下已有一个示例boa.conf,可以在其基础上进行修改。
1、Group的修改
修改 Group nogroup 为 Group 0 |
2、ScriptAlias的修改
修改 ScriptAlias/cgi-bin/ 为 ScriptAlias/cgi-bin/ |
3、ServerName的设置
修改 ServerNamewww.your.org.here 为 ServerName www.your.org.here |
第三部:Boa的执行
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 & |
第四步 CGI脚本测试
1、编写Helloworld.c程序
#include<stdio.h> int main(void) { } |
# /usr/local/arm/2.95.3/bin/arm-linux-gcc -ohelloworld.cgi helloworld.c
2、浏览