云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 嵌入式web服务器boa移植到mini2440开发板详细过程

嵌入式web服务器boa移植到mini2440开发板详细过程

  • 62 次阅读
  • 3 次下载
  • 2025/6/23 20:45:03

信盈达 嵌入式web服务器boa移植到mini2440开发板详细过程 陈工

嵌入式web服务器boa移植到mini2440开发板详细过程

1、概述

为了和开发板上用的httpd服务,我选用的服务器是boa,boa已经没有更新了,但是现在的应用仍然很大,当然更先进的AppWeb当然是更好的选择,不过学习应先从简单的入手。

本教程使用环境是Red Hat Enterprise Linux 6,交叉编译工具是arm-linux-gcc4.3.2,开发板是mini2440,开发板内核是2.6.32.

2、到http://www.boa.org/下载源码,boa最终版是0.94.13

3、 解压文件 1)解压

[root@localhostopen_source]# ls boa-0.94.13.tar.gz

[root@localhostopen_source]# tar -xvfboa-0.94.13.tar.gz -C ./ [root@localhostopen_source]# ls boa-0.94.13 boa-0.94.13.tar.gz

2)为了和X86版本区别把解压出来的文件夹boa-0.94.13重新命名为boa-0.94.13_arm [root@localhostopen_source]# mv boa-0.94.13 boa-0.94.13_arm

4. 编译前修改工作(主要是因为boa太久没有更新,目前相对说比较老,要修改下才能通过编译)

1)修改vicompat.h文件

[root@localhostopen_source]# ls

boa-0.94.13_arm boa-0.94.13.tar.gz

[root@localhostopen_source]# cd boa-0.94.13_arm/src/ [root@localhostsrc]# vicompat.h

找到

#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff 修改成

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

即将120行和126行的foo##->tm_gmtoff改为foo->tm_gmtoff

否则会出现错误:

util.c:100:1: error: pasting \错误 1

2)修改src/log.c 注释掉

if (dup2(error_log, STDERR_FILENO) == -1) {

DIE(\ }

1 / 1

信盈达 嵌入式web服务器boa移植到mini2440开发板详细过程 陈工

为: /*

if (dup2(error_log, STDERR_FILENO) == -1) {

DIE(\} */

否则会出现错误:

log.c:73 unable to dup2 the error log:bad file descriptor

3)修改src/boa.c 注释掉下面两句话: if (passwdbuf == NULL) {

DIE(”getpwuid”); }

if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {

DIE(”initgroups”); } 为 #if 0

if (passwdbuf == NULL) { DIE(”getpwuid”); }

if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {

DIE(”initgroups”); }

#endif

否则会出现错误:boa.c:211 - getpwuid: No such file or directory。

注释掉下面语句: if (setuid(0) != -1) {

DIE(”icky Linux kernel bug!”); }

2 / 2

信盈达 嵌入式web服务器boa移植到mini2440开发板详细过程 陈工

为 #if 0

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

DIE(”icky Linux kernel bug!”); }

#endif

否则会出现问题:boa.c:228 - icky Linux kernel bug!: No such file or directory

5、 配置boa服务器,编辑boa-0.94.13目录下的boa.conf文件,按如下配置: 修改: User nobody (48行) 为: User 0 #用户 修改: Group nogroup(49行) 为:

Group 0 #用户组

修改Group的参数为0是因为系统中没有nogroup组,如果你没有nobody用户,那么User nobody也要做相应修改(修改成自己的用户名亦可)。其它采用默认设置。如有必要,可以参看<附录>中的参数说明。

ServerName chenzhifa #(94行)服务器名字,这里默认是注释掉的,一定要去掉注释 DocumentRoot /var/www #(111行)为HTML文件目录 ScriptAlias /cgi-bin/ /var/www/cgi-bin/ #(193行)CGI程序目录

注意ScriptAlias项ScriptAlias /cgi-bin/ /var/www/cgi-bin是错的, 要改为ScriptAlias /cgi-bin/ /var/www/cgi-bin/就相差一个 /,

否则测试cgi程序时,在浏览器地址栏中输入192.168.1.99/cgi-bin/cgi-hello.cgi会出现以下错误: The requested URL /cgi-bin/cgi-hell.cgiwas not found on this server.

6. 生成Makefile文件,并修改其中的交叉编译器 [root@localhost boa-0.94.13_arm]# cdsrc/ [root@localhostsrc]# ./configure [root@localhostsrc]# viMakefile

修改编译器:第31行,32行 31 CC = gcc 32 CPP = gcc –E 为,保存并退出。

7. 编译:

3 / 3

信盈达 嵌入式web服务器boa移植到mini2440开发板详细过程 陈工

[root@localhostsrc]# make

8. 复制编译得到的可执行文件到根文件系统:

[root@localhostsrc]#cp boa /opt/s3c2440/root_nfs/bin/

9. 修改boa服务器程序权限(给最大权限):

[root@localhost boa-0.94.13_arm]# chmod 777 /opt/s3c2440/root_nfs/var/www/cgi-bin/cgi-hello.cgi

10. 在根文件系统中创建服务器目录(和boa中的相同) [root@localhostsrc]# mkdir /opt/s3c2440/root_nfs/var

[root@localhostsrc]# mkdir /opt/s3c2440/root_nfs/var/www

[root@localhostsrc]# mkdir /opt/s3c2440/root_nfs/var/www/cgi-bin

11. 复制配置文件到根文件系统中/etc/boa/目录中,注意boa目录要自动先创建 [root@localhostsrc]# cd ../

[root@localhost boa-0.94.13_arm]# mkdir /opt/s3c2440/root_nfs/etc/boa

[root@localhost boa-0.94.13_arm]# cpboa.conf /opt/s3c2440/root_nfs/etc/boa/

12. 复制mime.types文件到根文件系统的中etc文件夹中。(mime.types为x86主机/etc/目录下的文件,里面内容是Linux下文件类型对应的处理程序)

[root@localhost boa-0.94.13_arm]# cp /etc/mime.types /opt/s3c2440/root_nfs/etc/

13. 创建boa日志存放目录和日志文件,需要手动创建(路径要和boa中的配置相同) [root@localhost boa-0.94.13_arm]# mkdir /opt/s3c2440/root_nfs/var/log

[root@localhost boa-0.94.13_arm]# mkdir /opt/s3c2440/root_nfs/var/log/boa

[root@localhost boa-0.94.13_arm]# touch /opt/s3c2440/root_nfs/var/log/boa/access_log

14. 编译测试程序,cgi-hello.c(本人要当前目录中建了一个test文件夹,其中存放了测试的cgi-hello.c文件) [root@localhost boa-0.94.13_arm]# arm-linux-gcc -o test/cgi-hello.cgi test/cgi-hello.c test/cgi-hello.c: In function 'main':

test/cgi-hello.c:5: warning: return type of 'main' is not 'int'

15. 复制生成的cgi测试程序到根文件系统中存放boa服务器目录下的cgi-bin目录下(cgi程序全部要放在这个目录下):

[root@localhost boa-0.94.13_arm]# cp test/cgi-hello.cgi /opt/s3c2440/root_nfs/var/www/cgi-bin/

附cgi-hello.c源码: #include #include

void main() {

printf(\注意这里要两个换行符,这是HTML的规定 printf(\

4 / 4

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

信盈达 嵌入式web服务器boa移植到mini2440开发板详细过程 陈工 嵌入式web服务器boa移植到mini2440开发板详细过程 1、概述 为了和开发板上用的httpd服务,我选用的服务器是boa,boa已经没有更新了,但是现在的应用仍然很大,当然更先进的AppWeb当然是更好的选择,不过学习应先从简单的入手。 本教程使用环境是Red Hat Enterprise Linux 6,交叉编译工具是arm-linux-gcc4.3.2,开发板是mini2440,开发板内核是2.6.32. 2、到http://www.boa.org/下载源码,boa最终版是0.94.13 3、 解压文件 1)解压 [root@localhostopen_source]# ls boa

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com