您的位置:首页 > 运维架构 > Linux

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

2014-05-05 18:50 309 查看


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中的
#define
TIMEZONE_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)。同时注意这里的操作权限:

cp
boa-0.94.13/src/boa
/bin

cp
boa-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 the
error log: Bad file r.)

4.
设置html文件目录:
DocumentRoot
/var/www
5.
设置默认首页: DirectoryIndex
index.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文件配置的一些说明:

Port:boa服务器监听的端口,默认的端口是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类型:AddType
application/x-httpd-cgi cgi

Redirect:重定向文件。

Aliases:指定路径的别名。

ScriptAlias:指定脚本路径的虚拟路径。

参考:/article/11329520.html

http://hi.baidu.com/wstone_h/item/93f155de8a09e21dd68ed016(推荐)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: