首页
登录 | 注册

嵌入式web服务器的移植 --boa

由于嵌入式设备资源有限,且嵌入式web服务器通常只需一些简单的功能,因而有必要对web服务器的功能进行裁剪,使其占有较少的储存空间和内存空间、消耗较少的处理器资源。Boa就是这样的一个开放源码web服务器,它是一个支持单一任务的嵌入式web服务器,本身所占的空间很小,具有较高的性能,适用于嵌入式系统。同时,它支持CGI技术,用于实现动态web内容。
boa-0.94.13的移植和使用
首先从http://www.boa.org/上下载boa
#wget http://www.boa.org/boa-0.94.13.tar.gz
# 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
就可以看见网页中输出了一个九九乘法表。
 

相关文章

  • WEB服务器.应用程序服务器.HTTP服务器有何区别?IIS.Apache.Tomcat.Weblogic.WebSphere都各属于哪种服务器,这些问题困惑了很久,今天终于梳理清楚了:     Web服务器的基本功能就是提供Web信息浏览 ...
  • PHP WEB 安全防御
    案例 $_GET['username'] = "' or 1=1 -- '"; $_GET['password'] = "123456"; 注入后的Sql语句: 防御 推荐解决方案是使用 PDO 或 ...
  • 《循序渐进Linux》第二版即将出版发行(附封面)
    从<循序渐进Linux>第一版发布,到现在已经近6年了,6年的时间,技术发生了很大的变化,Linux系统的内核版本从2.6.9(RHEL4.x)已经更新到了现在的3.10(Centos7.x),第一版中的部分内容已经陈旧,Lin ...
  • 分享个JAVA学习路线[新手可以参考看下]觉得不好的,大家可以提出来我补充. 第一阶段 技术名称 技术内容 J2SE (java基础部分) java开发前奏 计算机基本原理,Java语言发展简史以及开发环境的搭建,体验Java程序的开发,环 ...
  • 使用Xamarin.Forms的企业应用程序模式(电子书)--访问远程数据
    许多现代的基于Web的解决方案利用由Web服务器托管的Web服务来为远程客户端应用程序提供功能. Web服务公开的操作构成Web API. 客户端应用程序应该能够在不知道API暴露的数据或操作如何实现的情况下使用Web API. 这要求AP ...
  • 一.Keepalived的安装过程 Keepalived的安装非常简单,下面通过源码编译的方式介绍下Keepalived的安装过程.首先打开Keepalived的官方网址http://www.keepalived.org,从中可以下载到各种 ...

2020 unjeep.com webmaster#unjeep.com
12 q. 0.013 s.
京ICP备10005923号