嵌入式web服务器移植(boa)

2019-07-12 17:13发布

杂谈:

           web服务器是一个被动的程序,可以是提供WWW、FTP、Email等服务的计算机,拥有独立的IP地址,通过HTTP/HTTPS与浏览器通讯。 常用的嵌入式web服务器有lighttpd Web服务器、shttpd Web服务器、Boa服务器。三种服务器的特点发:http://blog.csdn.net/21aspnet/article/details/6707199 现在常用的浏览器模型为BS(浏览器服务器模式),BS模式通讯的协议未HTTP/HTTPS,那么我们就有必要了解一下HTTP/HTTPS协议。在HTTP/HTTPS中有GET、POST、DELETE、PUT。在这里重点介绍一下GET和POST方式的差别。在HTTP协议中规定,GET方式传输的是明文参数与URL以?分隔参数和参数之间用&号相互连接(例如:https://www.baidu.com/s?wd=firefox&tn=monline_4_dg&ie=utf-8)。明文方式传输对互联网上所有主机看见,所以是不安全的传输方式,但是GET方式只能用于提交信息不能修改服务器上的信息(HTTP协议中规定)。POST以表单方式提交用户信息,相比于GET方式是安全的。及在传输完URL以后再以表格的形式将数据传输给服务器,可以修改服务器上的数据。例如修改密码等操作。 在POST和GET方式下浏览器就可以从服务器请求并得到信息,请求并修改信息。一次请求一次回复,而且页面也是先书写好的想要修改比较麻烦。而且也不能实现交互不能根据用户提交的信息返回对应的东西。所以只有静态生成的页面是不能满足我们的需要的,动态页面迎刃而生了。CGI标准是服务器端应用程序与服务器相互交换信息的标准。下面展示两张图来显示CGI是什么。                                                                       
                                                                                        CGI程序响应模型 闲话不多说估计也没人愿意看。下面开始移植。

移植:

1、下载(http://www.boa.org/)、解压、读read.txt

    tar -xvzf boa-0.94.tar.gz

 2、编译工程

    运行boa 解压后的文件夹下的src的configure
   
     将会看到
    
    有了Makefile以后我们就可以开始执行make   
   将会看到
  
  注意:中间编译如果出现错误yacc命令没找到错误,安装bison(bison中含有yacc句法解析工具),出现lex命令无法找到安装flex工具。最后提示定义错误将提示的两处##>改为>。

3、启动调试服务器

    
    报错:错误     
     创建boa目录,再运行,报告错误     
    将src的上一层目录的boa.conf文件复制到/etc/boa下(刚刚创建的目录),再运行./boa,报告错误:    
   创建/var/log/boa/和文件access_log,error_log再运行  
   运行成功!

4、配置浏览器访问目录(www目录和cgi目录)

        创建/var/www/并拷贝.html文件到www目录中。

       

       

      修改/etc/boa/boa.conf文件中的ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/cgi为

    

    创建/var/www/cgi-bin/将cgi程序拷贝到cgi-bin目录下。
5、重启服务器(因为修改了配置文件boa.conf,并且每次修改玩boa.conf后都要重启服务器

注意:boa是后台程序必须条用kill命令杀死进程,再重启
6、测试(URL访问)
     在浏览器中输入web服务器的ip及虚拟机ip。例如:192.168.1.103/a.html(静态网页);192.168.1.103/cgi-bin/cgitest.cgi(访问CGI程序)   
    下面是演示效果: