在虚拟机中的Linux系统上运行BOA服务器
虚拟机 RedHat9
作者:朱志强 QQ:512826028 嵌入式新手开发群:24186983
前期准备:虚拟机中的Linux必须可以和windowsXP 共享文件。
在我在虚拟机中测试BOA的时候,一直都是在网络上搜索大批的资料,但是不同的情
况总是不一样的,所以我也很长时间都没有通过BOA。今天终于通过了,所以
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
一下自
己的经验。大家也许遇到的问题和我不太一样,但是,希望你能拥有一个坚持不懈的精神~ 1( 去网站上下载最新版的BOA。
下载地址:
最新发行版本: 0.94.13
下载 boa-0.94.13.tar.gz
通过samba服务器的共享功能,把下载的BOA传到虚拟机的Linux中。不过,如果你的虚拟机中的Linux可以上网的话,就不用在考虑使用samba了。也就是那个前期准备就不用要了。我的Linux一直都没有配出来怎么上网,所以就使用samba的共享来传输数据了。
2. 然后进入到
[root@localhost ~]# cd src/
[root@localhost src]# ./configure 3. 然后执行 make
[root@localhost src]# make
util.c:100:1: error: pasting "t" and "->" does not give a valid preprocessing token make: ***
[util.o] 错误 1
提示出错。
4(上面的问题解决的办法是修改 src/compat.h
找到
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
修改成
#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff
然后
make clean
make
#######################################
OK~
这样我们就配置出来了BOA可执行文件了。下面我们就开始配合它的配置文件吧。
5( 修改配置文件boa.conf
建立 /etc/boa 目录,并复制boa.conf到新建的目录下。开始用VI打开并修改。
修改访问权限:修改User nobody 为 User 0 ; 修改Group nogroup 为 Group 0
设置cgi脚本目录: 将 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin
修改为 ScriptAlias /cgi-bin/ /var/www/cgi-bin
6( 按照配置文件放置相应的文件和文件夹。
建立 /var/boa 文件夹。
建立/var/www 文件夹,这个文件夹用来存放我们的html文件,特别是index.html文件。
看看/var/www/cgi-bin 文件夹是否存在,我的www和www文件夹下的文件夹都是直接存在的,所以这些都没有建,如果你的没有www文件夹,那这个文件夹也要建哦。
准备一个.html 的网页文件吧,我们把它复制到WWW文件夹下,同时,把我们刚才生成的BOA可执行文件复制到WWW文件夹下。
7( 运行boa。
如果不出意外,会出现下面的这个错误,没有出现就更好了。
错误是:log.c:73 unable to dup2 the error log:bad file descriptor
这个问题就牵扯到我们刚才的配置了,我们的var/boa是新建的一个文件夹,里面没有log文件夹,这个文件夹是我们用来存放BOA出现的状态的文件的文件夹。所以我们就要去 var/boa文件夹下新建一个log文件夹。新建完了之后,怎么还会出现这种问题呢,这个和这个log文件夹的访问权限有关系。我们就把它的权限改为777。
这些都处理完毕之后,我们就可以运行boa了。但是,当运行BOA之后,系统没有任何反映,用ps查看进程,发现BOA没有运行。这个时候,我们只能借助BOA错误日志来判断了。日志就是我们刚才的log 文件夹中的error-log文件。
我们进入到log文件夹中查看一下那个文件,发现了另个错误:
boa.c:228 - icky Linux kernel bug!: No such file or directory
这个问题的处理
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
很多,我使用的是注释掉与这些相关的判断语句。我们不能嫌麻烦~我们在回到我们解压BOA的初始目录中,找到我们的boa.c文件,用VI打开,并注释掉下面这段
if ( setuid ( 0 ) != - 1 ) {
DIE ( "icky
Linux kernel bug!" );
}
修改完之后,我们还需要重新编译一下,再把编译出来的BOA可执行文件再一次的复制到WWW文件夹中。再一次运行boa,我们就可以在进程中看到BOA了。
我们使用虚拟机中的浏览器来浏览一下:
(输入的是你自己虚拟机的IP地址,如果不知道的话,就使用ifconfig来查看一下IP地址。当然,一定要把IP改到和虚拟机的虚拟网卡在同一个网段上哦。不过,这些在配置samba中就用到了。)
我们在用XP的浏览器试试也通过了。
注意:这个IP是在配置samba服务器时设置的。最先准备samba的目的是可以把我们的文件从XP转移到Linux中。
我发现一个问题,就是我更改了index.html文件,但是Linux下的访问没有变化,而XP下的访问发生了变化,重启了一下Linux的桌面,情况依然存在。在网上搜索了资料,得知,因为没有杀死BOA进程导致的。使用KILL杀死进程,重新启动BOA,然后我就看到我想要的画面了。
参考资料:
嵌入式WEB 服务器及远程测控应用详解 潘应云 南京师范大学
web服务器Boa移植手册 天祥电子
boa服务器移植
在嵌入式Linux上的移植