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

时间:2023-01-25 18:40:46

杂谈:

           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是什么。

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

                                                                                        CGI程序响应模型

闲话不多说估计也没人愿意看。下面开始移植。

移植:

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

    tar -xvzf boa-0.94.tar.gz

 2、编译工程

    运行boa 解压后的文件夹下的src的configure

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

     将会看到

     嵌入式web服务器移植(boa)
    有了Makefile以后我们就可以开始执行make

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

   将会看到

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

  注意:中间编译如果出现错误yacc命令没找到错误,安装bison(bison中含有yacc句法解析工具),出现lex命令无法找到安装flex工具。最后提示定义错误将提示的两处##>改为>。


3、启动调试服务器

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

    报错:错误

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

     创建boa目录,再运行,报告错误

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

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

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

   创建/var/log/boa/和文件access_log,error_log再运行

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

   运行成功!


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

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

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

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

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

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

    创建/var/www/cgi-bin/将cgi程序拷贝到cgi-bin目录下。


5、重启服务器(因为修改了配置文件boa.conf,并且每次修改玩boa.conf后都要重启服务器

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

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

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

注意:boa是后台程序必须条用kill命令杀死进程,再重启

6、测试(URL访问)

     在浏览器中输入web服务器的ip及虚拟机ip。例如:192.168.1.103/a.html(静态网页);192.168.1.103/cgi-bin/cgitest.cgi(访问CGI程序)

  

    下面是演示效果:

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

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