在JZ2440板上关于一直Boa服务器的一点心得总结
2016-04-14 15:21
393 查看
作为一个初入嵌入式学习不久的菜鸟,在这里写博客还是挺害羞的。应一起学习的伙伴的要求,同时也想通过某种方式来记录自己学习过程的点滴,给自己一个督促,给自己一个未来。 下面介绍一下在S3C2440硬件平台上如何Boa服务器移植完成相应工作,只求勿喷,多多指教。一、下载Boa源码Boa源码下载地址:http://www.boa.org/或 http://labs.nevion.com/open-source/目前最新发行版本:0.94.13(05年更新版本),在linux上下载boa-0.94.13.tar.gz压缩包, 并将其解压并进入解压源码目录的src子目录。1.#tarzxvf boa-0.94.13.tar.gz2.#mv boa-0.94.13 boa_arm 3. #cd boa_arm/src二、配置编译Boa文件 下面所有操作都在src子目录下操作
1、#vim defines.h 修改#define SERVER_ROOT "/etc/boa"统一为“/usr/boa”。 SERVER_ROOT为boa启动时的配置文件boa.conf存放路径,这里我们统一为/usr/boa.(其实这个路径可以不修改,但是记住一定要将boa.conf文件放在到S3C2440硬件平台上对应的路径下)
2、生成Makefile文件
#./configure
#vim Makefile 进入vim进行修改交叉编译器
将:CC= gcc CPP=gcc -E 改为:CC=arm-linux-gcc CPP=arm-linux-gcc -E
3、修改boa_arm/src/compat.h
找到#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
为:#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff 否则在编译的时候会出现如下所示错误:
util.c: 100: 1: pasting"t"and"->"does not give a valid preprocessing token make: [util.o] Error1
4、 修改src/log.c (其实完全可以不改,只要确保日志目录对与所有用户都具有可读/写的权限)if(dup2(error_log, STDERR_FILENO) == -1) { DIE("unableto dup2 the error log"); } 即修改为: #if 0 if (dup2(error_log, STDERR_FILENO) == -1) { DIE("unable to dup2 the error log"); } #endif否则在编译的时候会出现如下所示错误: log.c:73 unable to dup2 the error log:bad file descriptor 5、修改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 [b]否则在编译的时候会出现如下所示错误:[/b] boa.c:211 - getpwuid: No such file or directory 注释掉下面语句: if(setuid(0) != -1) { DIE(”icky Linux kernel bug!”);} 即修改为: #if 0 if(setuid(0) != -1) { DIE(”icky Linux kernel bug!”);} #endif [b]否则在编译的时候会出现如下所示错误:[/b] boa.c:228 - icky Linux kernel bug!: No such file or directory
6、然后运行make进行编译,就可得到执行程序boa
#make
生成的boa执行文件大小为175.8KB。通过执行下面命令就可以将文件中调试信息除去,得到一个约60K的boa文件。 #arm-linux-strip boa
之后就可以将boa文件拷到S3C2440硬件平台上,至于放在哪个目录下,大家根据自己习惯来在SecureCRT中通过串口就行操作。我是把boa文件放到了bin目录下。
三、[b]修改配置文件boa.conf(这个修改配置可以在linux下修改也可以在[/b]SecureCRT中通过串口就行操作[b])[/b]
以下我是在SecureCRT中操作的(前提是你已经把[b]boa.conf从linux下拷到了开发板上)[/b]
1.在开发板/etc目录下建立/etc/boa目录, 并复制boa.conf到/etc/boa目录下,并按照以下步骤进行修改。#mkdir /etc/boa #cp boa.conf /etc/boa #vim boa.conf 进入boa.conf中进行配置 2.访问端口号设置 Port 80,可以设定我们访问网页时的端口号默认为80—访问时无需指定,假如改变了此端口号为8080,必须以下列格式访问: http://192.168.1.3:8080。一般在同一个电脑上运行多个boa服务器时可采用此方法我们这里保持默认即可。(这些都是通过些大牛博客上学来的,大家不妨可以试试) 3. 修改访问权限: 修改User nobody 为 user 0 修改Group nogroup 为 group 0 4. 设定日志目录:boa日志有两部分,Errorlog 和 AccessLog 默认为/var/log/boa/error_log和/var/log/boa/access_log两个文件。因为要移植到开发板上所以我统一修改 ErrorLog /etc/boa/error_log AccessLog /etc/boa/access_log 5. 设置html文件目录: 默认为:DocumentRoot /var/www 我们统一修改为: DocumentRoot /etc/boa/www 6. 设置默认首页: DirectoryIndex index.html 这是访问网页时若不指定访问的网页名称,服务器默认返回的网页,我们不做修改 7. 设置cgi脚本目录: 将 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin 修改为 ScriptAlias /cgi-bin/ /etc/boa/cgi-bin 8.ServerName www.your.org.here 可以不修改,一般注释掉 9. 把mime.types文件复制到开发板/etc/boa目录。 其实以上修改没有定式,大家操作时可以根据自己习惯修改相应的目录即可。最后就比较简单了,在开发板/etc/boa目录下创建日志文件所在目录/etc/boa/log,创建HTML文档的主目录/etc/boa/www,创建CGI脚本所在目录/etc/boa/cgi-bin.剩下的就可在/etc/boa/www 下放一个自己写好的.html文件就好了。然后执行boa文件:# /bin/boa。现在就可以连接硬件网络,在电脑浏览器里访问已建立好的服务器里的.html页面了。须记得IP就是开发板的IP,大家自己#ifconfig 下就可以了。 初次,勿见怪。希望能互相学习。
相关文章推荐
- 移植boa服务器到ARM
- JZ2440开发板程序烧写方法的学习总结
- 通过nfs挂载主机目录到开发板(jz2440)
- vsftpd服务----配置
- 什么是高内聚、低耦合?
- 模板复习计划——线性与半线性数据结构维护
- 两点之间经纬度的计算
- 百度编辑器解决span被过滤, 自动加P标签
- Struts2---标签
- Android 6.0权限机制及开发流程详解
- CentOS6.5系统光纤连接存储的多路径配置及使用方法
- Number
- InvocationTargetException
- Android MediaController Api译文
- 用栈实现走迷宫
- 从尾到头打印单链表(C语言)
- Intent详解
- 统计利用先序遍历创建的二叉树的深度
- iOS 获取系统当前时间
- ListView的优化