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

news/2024/7/7 16:12:38

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(推荐)

http://www.niftyadmin.cn/n/791057.html

相关文章

注册表学习第一课

修改注册表的三种方法<在没有把握的情况下&#xff0c;一定要先备份要改的注册表哦> 1.winR 然后输入regedit.exe 打个比方&#xff0c;你若想让开始菜单消失&#xff0c;那么你首先找到HKEY_CURRENT_USER根&#xff0c; 然后Software-microsoft-windows-currentversion-…

解决C#中txt文档导入数据库时,中文显示乱码的问题

解决C#中txt文档导入数据库时&#xff0c;中文显示乱码的问题 与前篇文章不同之处用红笔标记 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.…

java画按钮的边框

import javax.swing.*;import java.awt.*;public class demo_4{ public static void main(String [] args) { demo_4_1 aanew demo_4_1(); }}class demo_4_1 extends JFrame{ JPanel pnew JPanel(); JMenuBar jmnew JMenuBar();//创建一个菜单栏 JMen…

关闭microsoft office 2013上载中心

今天发现Microsoft Office2013上载中心的运行&#xff0c;为了我的流量着想&#xff0c;所以要把它关掉。这是在安装Microsoft Office 2013的时候&#xff0c;同时安装了MicrosoftOffice2013的上载中心&#xff0c;这个上载中心其实也是一个备份文件的工具&#xff0c;怕文件…

NHibernate Simple Demo

参考&#xff1a;http://www.cnblogs.com/hbhzsysutengfei/p/6078898.html NHibernate各种数据库连接参数文件配置方法说明 &#xff1a;http://blog.csdn.net/hsg77/article/details/23463733 解决方案图&#xff1a; 上面2个引用是NHibernate必备的 先看一下调用的代码&a…

自定义用户控件编写——(文件夹目录选择)

由于最近接触项目中&#xff0c;选择目录较常用&#xff0c;先需要一个功能对其实现&#xff0c;具体如下 效果源代码如下&#xff1a; public partial class FolderButtonEdit : DevExpress.XtraEditors.ButtonEdit{public FolderButtonEdit(){InitializeComponent();this.Pro…

C#中委托和事件处理

事件是对象发送的消息&#xff0c;以发信号通知操作的发生。操作可能是由用户交互&#xff08;例如鼠标单击&#xff09;引起的&#xff0c;也可能是由某些其他的程序逻辑触发的。引发&#xff08;触发&#xff09;事件的对象叫做事件发送方。捕获事件并对其作出响应的对象叫做…

AA@数域和多项式

文章目录 数域封闭运算用封闭运算描述数域 多项式数域P上的多项式多项式中的相关术语多项式相等零多项式多项式之间的运算加法(减法)乘法 多项式运算的次数性质运算律 一元多项式环带余除法 整除因式和倍式整除的常用性质相互整除整除的传递性 组合式依然整除 数域 设Р是由一…