Boa制作

Posted dianyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Boa制作相关的知识,希望对你有一定的参考价值。

大家好!这里是电鱼电子(www.dianyu.com.cn)给大家分享的一期boa制作:

1.准备开发环境:

  (1)VMware 10.0

  (2)Ubuntu 14.04 64bit

  (3)Sail335开发板

  (4)交叉编译器:gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux

2.源码:

  (1)Boa源码:boa-0.94.13.tar.gz

  (2)Boa测试页面:index.html

3.移植过程:

  (1)移植Boa

          ①解压缩  

              #tar zxvf boa-0.94.13.tar.gz

          ②进入boa-0.94.13目录

               #cd boa-0.94.13

          ③进入src目录,在src目录下运行./configure

          ④生成Makefile,修改Makefile的编译器选项

              #gedit Makefile

              CC = gcc    改成    CC = arm-linux-gnueabihf-gcc

              CPP = gcc -E   改成   CPP = arm-linux-gnueabihf-gcc -E

          ⑤添加交叉编译器临时环境变量

          #export PATH=/usr/local/arm/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/:$PATH

          ⑥修改文件 src/boa.c,将boa.c文件中以下几行判断去掉即可。

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

            DIE ( "icky Linux kernel bug!" );

          }

          ⑦ 修改文件src/compat.h

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

          改成    

          #define TIMEZONE_OFFSET(foo) foo->tm_gmtoff

          ⑧把src 文件夹下的config.c 里的 if(!server_name){..........}

         (大概在266 行到     286 行之间)注释掉

          ⑨修改src/log.c   注释掉

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

                  DIE("unable to dup2 the   error log");

           }

           ⑨编译代码

              #make

4.运行环境搭建

  (1)在开发板中创建以下目录

          /etc/boa    /var/logs    /var/logs/boa    /var/www    /var/www/cgi-bin

          #mkdir -p /etc/boa

          #mkdir -p /var/logs

          #mkdir -p /var/logs/boa

          #mkdir -p /var/www

          #mkdir -p /var/www/cgi-bin

  (2)拷贝、修改文件

          拷贝boa-0.94.13/boa 和 boa-0.94.13/boa_indexer 到 /usr/bin。

          拷贝Ubuntu12.04的/etc/mime.type 到 开发板 /etc

          拷贝boa-0.94.13/boa.conf 到 /etc/boa

          修改/etc/boa/boa.conf

              #ServerName www.your.org.here  改为 ServerName www.dianyu.org

              ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 改为 ScriptAlias /cgi-bin/ /var/www/cgi-bin/

              AccessLog /var/log/boa/access_log 改为 AccessLog /var/logs/boa/access_log

             ErrorLog /var/log/boa/error_log 改为  ErrorLog /var/logs/boa/error_log

          拷贝 index.html 到 /var/www

5.测试与运行

          连接好PC与开发板网卡0(eth0)的网络连接

          将开发板eth0网卡设置ip为192.168.1.123

          #ifconfig eth0 192.168.1.123 up

          测试开发板网卡0与PC的网络连接

          #ping PC的IP地址

          运行Boa

          #boa&

          在PC上打开浏览器,在浏览器中输入192.168.1.123,查看boa显示的index.html(这个文件名称和boa.conf文件中的DirectoryIndex index.html中的index.html要一样)

以上是关于Boa制作的主要内容,如果未能解决你的问题,请参考以下文章

SylixOS移植Boa服务器

ubuntu安装boa服务器

BOA移植

三种嵌入式web服务器(Boa / lighttpd / shttpd)的 linux移植笔记

BoA - MASAYUME CHASING

如何进行基于am335的boa移植?