Welcome 微信登录

首页 / 操作系统 / Linux / Boa Web服务器在PC上移植

boa是一个非常小巧的Web服务器,可执行代码只有约60KB。它是一个单任务Web服务器,只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。下面我们讲解以下boa如何在PC机(虚拟机RedHatAS5环境)完成移植修改工作。    boa下载地址:下载在Linux公社的1号FTP服务器里,下载地址:FTP地址:ftp://www.linuxidc.com用户名:www.linuxidc.com密码:www.muu.cc在 2011年LinuxIDC.com10月Boa Web服务器在PC上移植下载方法见 http://www.linuxidc.net/thread-1187-1-1.html一、配置编译boa1. #tar zxvf boa-0.94.13.tar.gz2. #mv boa-0.94.13 boa_pc3. #cd boa_pc/src4.boa.conf生效目录设置  boa启动过程中需要读取一个配置文件:boa.conf,它的路径由以下文件决定  第30行 #define SERVER_ROOT "/etc/boa",默认为/etc/boa文件夹  我们为了统一路径起见,改为:"/home/boa",接下来所有跟boa有关的文件我们都放在/home/boa下5.修改src/boa.c 注释掉下面语句:    if (setuid(0) !=-1)     {   DIE(”icky Linux kernel bug!”); } 即修改为: #if 0 if(setuid(0) != -1)     {      DIE(”icky Linux kernel bug!”);     } #endif否则运行boa时会提示 boa.c:226 - icky Linux kernel bug!: No suchfile or directory错误6. #./configure 7. make    在当前目录下生成一个boa的可执行程序,./boa运行即可,ps能看到boa的进程即说明boa正常工作.    注:有些编译器会提示以下错误,按相应方法解决即可.    util.c: 100: 1: pasting “t” and “->”does not give a valid preprocessing token make: [util.o] Error1    解决方法:    方法>. 修改compat.h中的      #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff    为:      #define TIMEZONE_OFFSET(foo)foo->tm_gmtoff 二> 修改配置文件boa.conf1.建立/home/boa目录, 并复制boa.conf到/home/boa目录下,并按照以下步骤进行修改。  #mkdir /home/boa  #cp boa.conf /home/boa2.访问端口号设置
大概25左右:Port 80,可以设定我们访问网页时的端口号默认为80—访问时无需指定
假如改变了此端口号为8080,必须以下列格式访问: http://192.168.1.3:8080
一般在同一个电脑上运行多个boa服务器时可采用此方法我们这里保持默认即可
3. 修改访问权限:   修改User nobody 为 user 0   修改Group nogroup 为 group 04. 设定日志目录:boa日志有两部分,Errorlog  和 AccessLog   默认为/var/log/boa/error_log和/var/log/boa/access_log两个文件。   所以我们统一修改为:   ErrorLog /home/boa/error_log   AccessLog /home/boa/access_log(注意:这里/home/boa目录必须为可写,否则会出项错误:log.c:73 – Unable to dup2 the error log: Bad file r.) 5. 设置html文件目录: 
默认为:DocumentRoot /var/www我们统一修改为:DocumentRoot /home/boa/www
 6. 设置默认首页: DirectoryIndex index.html
这是访问网页时若不指定访问的网页名称,服务器默认返回的网页,我们不做修改
 7. 设置cgi脚本目录:  将          ScriptAlias /cgi-bin/ /usr/lib/cgi-bin     修改为           ScriptAlias /cgi-bin/ /home/boa/cgi-bin         注:boa提供cgi编程接口,使得网页具有交互能力,后面我们在做讲解.   8.测试
在/home/boa/www中随意放一个测试网页(必须包含index.html文件)我们这里随便建一个文件取名为index.html,里面写一个:hello boa...在IE中敲入:http://192.168.1.101/ 即可看到刚才的helloo boa证明整个boa搭建成功.