当前位置: 首页 > 工具软件 > Boa > 使用案例 >

Boa的移植过程

夔桐
2023-12-01

      移植Boa可以先在自己系统上先运行起来在想开发板移植,这样可以避免把文件在开发板和电脑之间来回传输,节省时间!

   1、下载源码

        下载网址: http://www.boa.org/
        最新版本:  0.94.13  (从0.95版本以后,BOA不再开源发布)
        文件名称:  boa-0.94.13.tar.gz

   2、解压缩 tar -xvf boa-0.94.13.tar.gz

   3、进入boa-0.94.13/src下执行命令./configure生成Makefile

   4、make生成boa

出现错误:

   make: yacc:命令未找到
   make: *** [y.tab.c] 错误 127

   make: lex:命令未找到
   make: *** [lex.yy.c] 错误 127

这是没有安装bison和flex造成的,我的是ubuntu系统执行

sudo apt-get install bison flex命令即可安装成功

重新make出现这样的错误:

   util.c: 在函数‘get_commonlog_time’中:
   util.c:100:1: 错误: 毗连“t”和“->”不能给出一个有效的预处理标识符
   make: *** [util.o] 错误 1

修改compat.h中的#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff为:#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff或改用2.95.3版本的编译器

make....成功!

  5、创建以下这几个目录/etc/boa(存放boa.conf)、/var/log/boa、/var/www和/var/www/cgi-bin

  6、修改boa-0.94.13目录下的boa.conf

     修改访问权限:修改User nobody 为 User 0;

     修改Group nogroup 为 Group 0;

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

     修改/var/log/boa目录的权限为可写的,否则会出项错误:log.c:73 – Unable to dup2 the error log: Bad file r.

  7、将boa.conf复制到/etc/boa目录下

     将boa-0.94.13/examples/cgi-test.cgi复制到/usr/www/cgi-bin

     将一个index.html文件复制到/usr/www

     将mime.types存放在boa.conf文件中MimeTypes /etc/mime.types指定的目录即可

  8、运行./boa&

  9、测试在浏览器地址栏输入192.168.1.110不能连接到我们的网页

查看/var/log/boa目录下的error_log文件发现提示这样的错误:

     boa.c:228 - icky Linux kernel bug!: No such file or directory

这个错误可将if (setuid(0) != -1) {  DIE(”icky Linux kernel bug!”);  }

boa.c里这几行程序注释掉。

     boa.c:194 - unable to bind: Permission denied 这个错误是因为我们的80端口被占用了将boa.conf文件里的 Port 80修改为Port 8080

重新运行./boa&,如果你在error_log文件里看到

[05/May/2014:13:39:25 +0000] boa: server version Boa/0.94.13
[05/May/2014:13:39:25 +0000] boa: server built May  5 2014 at 20:35:26.
[05/May/2014:13:39:25 +0000] boa: starting server pid=5926, port 8080

这样的日志说明你的boa已经成功运行了。

在浏览器地址栏里输入192.168.1.110:8080回车浏览器里显示了我们的页面。



 类似资料: