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

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文件配置的一些说明:

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类型:AddType application/x-httpd-cgi cgi 
Redirect
:重定向文件。 
Aliases
:指定路径的别名。 
ScriptAlias
:指定脚本路径的虚拟路径。


参考:http://blog.csdn.net/starson7424/article/details/4334440
       http://hi.baidu.com/wstone_h/item/93f155de8a09e21dd68ed016(推荐)

你可能感兴趣的:(嵌入式)