Linux下安装boa(嵌入式web服务器…

来源:互联网 发布:面向接口编程事例 编辑:程序博客网 时间:2024/05/19 07:09

boa是一个小型的web服务器,可以用于多种平台,在嵌入式中比较常见。

一. 编译boa程序

1.www.boa.org下载boa-0.94.13.tar.gz
2. 解压: tar –zxvf boa-0.94.13.tar.gz
3. 进入boa-0.94.13/src目录, 执行./configure 
4. make
注意:编译时用2.95.3以上的版本会出错:
util.c: 100: 1: pasting “t”and “->” does not give a valid preprocessing token make:[util.o] Error1

解决方法: 
方法1>. 修改compat.h中的
#defineTIMEZONE_OFFSET(foo) foo## ->tm_gmtoff
为:
#define TIMEZONE_OFFSET(foo)foo->tm_gmtoff

方法2>.改用2.95.3版本的编译器。

二.修改配置文件boa.conf 

     编译后在boa-0.94.13/src/中有2个二进制文件,那就是我们需要的执行档,只需拷贝到/bin或者/sbin等执行目录里面(建议使用/bin)。同时注意这里的操作权限:
cpboa-0.94.13/src/boa  /bin
cpboa-0.94.13/src/boa_indexer/bin 


1. 建立/etc/boa目录,并复制boa.conf到/etc/boa目录下,并按照以下步骤进行修改。

至于为什么要复制到这个目录呢?我们可以看一下./src/defines.h源代码,里面的一个宏,定义了服务器的根目录,如下:

 
#ifndef SERVER_ROOT 
#define SERVER_ROOT "/etc/boa" 
#endif

2.修改访问权限: 修改User nobody 为 User 0 ; 修改Group nogroup为 Group 0
3.设定日志目录:boa日志有两部分,Errorlog  和 AccessLog
一般情况下为/var/log/boa/error_log 和/var/log/boa/access_log两个文件。所以根据自己的情况情况设置日志目录,没有的话要自己手动创建:
ErrorLog/var/log/boa/error_log
AccessLog /var/log/boa/access_log
 
(注意:这里/var/log/boa目录必须为可写,否则会出项错误:log.c:73 – Unable to dup2 theerror log: Bad file r.)

 4.设置html文件目录: DocumentRoot/var/www
 5.设置默认首页: DirectoryIndexindex.html 
 6. 设置cgi脚本目录: 
     ScriptAlias/cgi-bin//usr/lib/cgi-bin   
    修改为 
    ScriptAlias /cgi-bin/ /var/www/cgi-bin

 

      ScriptAlias一项指定了cgi程序的目录,这里我们设置为/var/www/cgi-bin,就是说以后的各种cgi程序就要放在这个目录了。

三. 根据第二步设置建立相关文件夹并放入文件(边设置边建立文件更好): 
 1.根据(第二.3步)的设置建立/var/boa文件夹 
 2. 根据(第二.4步)的设置建立/var/www 文件夹 ,并在此目录下存放html文件(包括index.html文件)。
 3. 根据(第二.6步)的设置建立/var/www/cgi-bin文件夹 并存放一些用来测试的cgi脚本。

四.运行并测试。

  ok,输入boa命令启动(可能需要root权限)。 
   在windows 下通过http://IP这种形式访问,进行测试(当然是要有index.html才能看到效果)。


boa.conf文件配置的一些说明:

Portboa服务器监听的端口,默认的端口是80。如果端口小于1024,则必须是 root用户启动服务器。 
Listen
:绑定的ip地址。不使用这个参数时,将绑定所有的地址。 
User
:连接到服务器的客户端的身份,可以是用户名或UID 
Group
:连接到服务器的客户端的组,可以是组名或GID 
ServerAdmin
:服务器出故障时要通知的邮箱地址。 
ErrorLog
:指定错误日志文件。如果路径没有以"/"开始,则相对于ServerRoot路径。没有配置时默认的文件是/dev/stderr。若不想记录日志,指定文件为/dev/null 
AccessLog
:设置存取日志文件,与ErrorLog类似。 
UseLocaltime
:设置使用本地时间,使用UTC时注释这个参数。这个参数没有值。 
VerboseCGILogs
:在错误日志文件中记录CGI启动和停止时间,若不记录,注释这个参数。这个参数没有值。 
ServerName
:指定服务器的名称,当客户端使用gethostname+ gethostbyname时返回给客户端。 
VirtualHost
:虚拟主机开关。使用此参数,则会在DocumentRoot设定的 
目录添加一个ip地址作为新的DocumentRoot 
处理客户端的请求。如DocumentRoot设置为/var/www,则http://localhost/转换/var/www/127.0.0.1/,若注释此参数,则为/var/www/ 
DocumentRoot
HTML文件的根目录(也就是网站的目录)。 
UserDir
:指定用户目录。 
DirectoryIndex
:指定预生成目录信息的文件,注释此变量将使用DirectoryMaker变量。这个变量也就是设置默认主页的文件名。 
DirectoryMaker
:指定用于生成目录的程序,注释此变量将不允许列目录。 
DirectoryCache
:当DirectoryIndex文件不存在,而DirecotryMaker又被注释掉时,将列出这个参数指定目录给客户端。 
KeepAliveMax
:每个连接允许的请求数量。如果将此值设为"0 ",将不限制请求的数目。 
KeepAliveTimeOut
:在关闭持久连接前等待下一个请求的秒数。(秒)。 
MimeTypes
:设置包含mimetypes信息的文件,一般是/etc/mime.types 
DefaultType
:默认的mimetype类型,一般是text/html 
CGIPath
:相当于给CGI程序使用的$PATH变量。 
SinglePostLimit
:一次POST允许最大的字节数,默认是1MB 
AddType:
增加MimeType没有指定的类型,例:AddType type extension [extension ...]。要使用cgi,必须添加cgi类型:AddTypeapplication/x-httpd-cgi cgi 
Redirect
:重定向文件。 
Aliases
:指定路径的别名。 
ScriptAlias
:指定脚本路径的虚拟路径。


参考:http://blog.csdn.net/starson7424/article/details/4334440
      http://hi.baidu.com/wstone_h/item/93f155de8a09e21dd68ed016(推荐)
0 0
原创粉丝点击