文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>boa分析及移植

boa分析及移植

时间:2009-03-14  来源:sjj0412

--------------------------------------
本文系本站原创,欢迎转载!

转载请注明出处:http://sjj0412.cublog.cn/ -------------------------- 一.boa web 服务器的基本原理

Boa其实可以看成网络服务器,特殊的网络服务器,只不过它通常监听web应用的常用端口80端口,只不过他能够解释http协议,如get,post等,当文件为一般文件时,它直接传送给客户端,如果是CGI程序,则它创建一个新的进程执行这个CGI程序,具体和客户端的交互由CGI程序完成,为了CGI程序能够方便的和客户端交互,boa程序将CGI的标准输出重定位到了套接字文件上,这样CGI程序往标准输出输出的内容就是通过网络传递给客户端的数据,这样就达到了和客户段的交互。

 

二.Boa移植

1.下载Boa源码
    下载地址: http://www.boa.org/
    最新发行版本: 0.94.13
    下载 boa-0.94.13.tar.gz

    将下载的文件放入用户目录

解压:# tar xzf boa-0.94.13.tar.gz
2、生成Makefile文件

boa-0.94.13.tar.gz解压后生成boa-0.94.13目录,运行boa-0.94.13/src/configure文件,

执行:

#cd  boa-0.94.13/src

#./configure
3、修改Makefile文件(注意:必须用cross-2.95.3, 如使用3.3.2,3.4.1等等会出错)

[1]添加

CROSS_COMPILE=/usr/local/arm/2.95.3/bin/arm-linux-
[2] 修改 CC = gcc
为 CC = $(CROSS_COMPILE)gcc (根据自己电脑主机的编译器位置定)
[3] 修改 CPP = gcc - E
为 CPP = $(CROSS_COMPILE)gcc  -E

 

4.Boa的配置
这一步的工作也在电脑主机上完成。
在电脑主机上的Boa源码boa-0.94.13目录下已有一个示例boa.conf,可以在其基础上进行修改。如下:

#vi boa.conf
1、Group的修改
    修改 Group nogroup
为 Group 0

3. User的修改
    修改 User nogroup
为 User 0

上面必须改,否则当在网页中访问CGI文件时,服务器执行CGI程序有问题。
2、ScriptAlias的修改
    修改ScriptAlias /cgi-bin/  /usr/lib/cgi-bin/
为 ScriptAlias /cgi-bin/  /var/www/cgi-bin/
3、ServerName的设置
修改#ServerName www.your.org.here
为 ServerName www.your.org.here
    注意:该项默认为未打开,执行Boa会异常退出,提示“gethostbyname::No such file or directory”,所以必须打开。其它默认设置即可。

 

5.开发板根文件系统文件夹及文件添加

将mime.types文件复制根文件系统/etc目录下,通常可以从linux主机的 /etc目录下直接复制即可。

#cp /etc/mime.types etc/

同时创建web服务器根目录 /var/www,网关程序文件夹

Mkdir –m 777 /var/www

Mkdir –m 777 /var/www/cgi-bin 网关程序文件夹

然后将html文件复制到/var/www中,然后在主机通过Ip地址就可以访问到开发板的网页文件了

如果执行boa出现如下错误时," icky Linux kernel bug!:No such file"
修改 src/boa.c,注释掉如下内容:
/*if (setuid(0) != -1) {
DIE("icky Linux kernel bug!");
}*/

/*if (passwdbuf == NULL) {
DIE("getpwuid");
}
if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {
DIE("initgroups");
}*/
重新编译。

3.boa应用

  当你移植完了boa后,如果只是在主机访问开发板的网页,这个就太不值了,所以一般大家都是用boa来向用户提供友好的开发板控制界面。

例如,当用户点击网页的某个部分时,向服务器发送执行CGI程序,那么作用就大多了,因为这个CGI程序就是开发板上的可执行程序,当然只要在CGI程序中实现具体的开发板控制操作,就可在远程通过访问网页的形式达到控制开发板的目的。

 

相关阅读 更多 +
排行榜 更多 +
开局一个小兵最新版

开局一个小兵最新版

休闲益智 下载
火柴人联盟2腾讯qq登录版

火柴人联盟2腾讯qq登录版

体育竞技 下载
tsuki odyssey游戏(月兔冒险奥德赛)

tsuki odyssey游戏(月兔冒险奥德赛)

休闲益智 下载