您的位置:首页 > 其它

在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 下就可以了。 初次,勿见怪。希望能互相学习。

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息