由于嵌入式设备资源有限,且嵌入式web服务器通常只需一些简单的功能,因而有必要对web服务器的功能进行裁剪,使其占有较少的储存空间和内存空间、消耗较少的处理器资源。Boa就是这样的一个开放源码web服务器,它是一个支持单一任务的嵌入式web服务器,本身所占的空间很小,具有较高的性能,适用于嵌入式系统。同时,它支持CGI技术,用于实现动态web内容。
boa-0.94.13的移植和使用
首先从上下载boa
#wget
# tar -zxf boa-0.94.13.tar.gz
# cd boa-0.94.13/src
#./configure 运行configure生成Makefile
#make
编译会出现错误
util.c:99:1:pasting”t“and"->"does not give a valid preprocessing token
make:* * *[util.o]错误1
这是compat.h中的一个宏定义隐去的
#sed -i 's|#define TIMEZONE_OFFSET(foo)##->tm_gmtoff|#define TIMEZONE_OFFSET(foo)->tm_gmtoff|g' compat.h
除了这里还有一处在boa.c
sed -i 's|drop_privs();|//drop_privs();|g' boa.c
在make一下没报错就行了。
编译完后可以看到,在源代码目录下生成了一个名为boa的可执行文件。将其放入构建好的根文件系统中,并在etc/下面见一个boa目录,存放boa的配置文件boa.conf。
#cp boa /usr/sbin/
#mkdir -p /etc/boa
#vim /etc/boa/boa.conf
Port 80
DocumentRoot /var/www
MimeTypes /etc/mime.types
DefaultType text/plain
Errorlog /var/log/boa/error_log
CGIPath /bin:usr/bin:/usr/local/bin
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
#mkdir -p /var/www/var/log/boa /var/www/cgi-bin
自己写一个程序如我编写的九九乘法表jiujiu.c:
#include "stdio.h"
void main()
{
int i,j;
printf("Content-type: text/html; charset=utf-8\n\n");
printf("
Linux小组\n");
for(i=1;i<=9;i++) printf("%4d",i);
printf("
\n");
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++) printf("%4d",i*j);
printf("
\n");
}
printf("\n
");
}
#gcc jiujiu.c -o jiujiu
#cp jiujiu /var/www/cgi-bin
#boa
然后在浏览器中输入域名就可以了。
http://localhost/cgi-bin/jiujiu
就可以看见网页中输出了一个九九乘法表。
阅读(1774) | 评论(0) | 转发(0) |