uClinux下,主要有三个Web Server:httpd、thttpd和Boa。Httpd是最简单的一个Web Server,它的功能最弱,不支持认证,不支持CGI。Thttpd和Boa都支持认证、CGI等,功能都比较全。为了实现动态Web技术,这里我们选择实现一个支持CGI的、非常适合于嵌入式系统的Boa Web Server。
Boa是一个单任务的http服务器,源代码开放、性能高。目前,uClinux的代码中已经包含boa的源代码,在uClinux下实现 Boa,需要对Boa做一些配置和修改。这主要通过对boa.conf和mime.types文件进行修改来实现,需要改动的配置有以下几项。
(1)建目录
由于uClinux默认的根文件系统romfs是只读的,不能用mkdir等命令来新建目录,故应在编译内核前先建好要用到的目录,这通过修改 /
uclinux-samsung/vendors/Samsung/4510b/makefile
ROMFS_DIRS=bin dev etc home lib mnt proc usr var的后边增加home/web home/web/cgi-bin
3.7
然后在/uclinux- samsung/Vendors/Samsung/4510b/inittab里修改,
在:inet:unknown:/bin/inetd后加入: boa:unknown:/bin/boac/home。
(2)指定Web服务器的根目录路径(SERVER_ROOT)
/uclinux-samsung/user/boa/src/目录,
通过修改define.h文件中#define ERVER_ROOT“/home”语句来指定SERVER_ROOT。
(3)修改boa.conf文件
3.1
在./uclinux-samsung/user/boa/src/boa.conf里修改:
*将user obody改为User 0
Group ogroup改为Group 0;
3.2
*将DocumentRoot/var/www
改为DocumentRoot/home/web,
3.4
*将MimeTypes/etc/mime.types
改为MimeTypes/home/web/mime.types;
3.5
定义默认首页和CGI程序所在目录,即
DirectoryIndex index.html
ScriptAlias/cgi-bin/ /home/web/cgi-bin/
这样指定后,.index.htm为远程浏览客户访问Web Server所看到的首页默认值,用C编写的CGI程序编译成二进制文件,放到/cgi-bin/目录下,CGI程序能被正确地执行。
3.6
Boa.conf文件和mime.types文件必须放到Web服务器根目录下,所以把修改后的bao.conf和mime.types拷贝到 “./uclinux-samsung/romfs/home/”目录下。
3.8
make menuconfig------>kernel--->user setting---->miscellaneous configuration--->generic cgi& cgihtml
配置过程后,重新编译内核,编译时选中Boa选项。把编译好的内核下载到开发 板,启动uClinux,完成IP配置,启动Boa Web Server,然后就可以通过IE访问你的网页了。如果想启动uClinux时自动启动Boa Web Server,可以修改rc文件,进入uclinux-samsung/vendors/Samsung/4510B目录,在运行脚本rc中增加两行:
ifconfig eth0 192.168.168.101 up
boa-c /home/&
修改后重新编译内核,再下载到开发板运行。运行uClinux后,不需要配置就可以直接通过IE来访问你的网页了。