boa服务器移植与CGIC库的安装使用

Posted 博客天空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了boa服务器移植与CGIC库的安装使用相关的知识,希望对你有一定的参考价值。

1.boa服务器的移植

准备文件:boa服务器的源码,或者用自己保存的已修改文件

源码下载:boa-0.94.13.tar.gz 链接:https://pan.baidu.com/s/13pSIqRU47xkjInVfFDMorQ 密码:m7eg

解压源码:tar -xvf boa-0.94.13.tar.gz

 安装需要工具bison,flex:  sudo apt-get install bison flex -y

 

进入解压文件夹的src文件夹内修改注释掉一些语句:

修改 src/compat.h:

找到

#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff

修改成

#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff

 

修改 src/log.c:

注释掉

if (dup2(error_log, STDERR_FILENO) == -1) {
                         DIE("unable to dup2 the error log");
                   }

修改src/boa.c:

注释掉下面两句话:

if (passwdbuf == NULL) {
        DIE(”getpwuid”);
        }
        if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {
        DIE(”initgroups”);
        }

注释掉下面语句:

if (setuid(0) != -1) {
                        DIE(”icky Linux kernel bug!”);
        }

 

修改src/defines.h

将 #define SERVER_ROOT "/etc/boa"

修改为: #define SERVER_ROOT "/boa"    //此处为boa服务器位置,根据自己设置的位置填写正确,

(这样boa程序启动时会在/boa目录下寻找boa.conf配置文件,并且将/boa文件夹作为服务器的根目录)

 

cd boa-0.94.13/src/

执行./configure

这是根据configure.in文件进行一系列的配置,生成config.status,configure,和Makefile文件。

如果无法执行,考虑权限,修改该目录下的configure的属性为可执行 chmod 755 configure

对于在开发板上运行,修改Makefile: CC = arm-linux-gcc CPP = arm-linux-gcc–E。输入make命令进行编译
文件瘦身:strip boa(ubuntu下测试) 或 arm-linux-strip boa(板子上运行)

 

Boa的配置(修改boa.conf文件,可以修改源码解压包内的,也可以新建一个或用已完成修改的):

vi boa.conf, //几乎全部指定到boa的目录下,这样方便我们进行管理

重新指定一些文件的生成路径,因为重新指定这些路径后会帮助我们深刻的理解关于boa服务器的工作机制

Port  80  

User  0  

Group 0  

# bind调用的IP地址,一般注释掉,表明绑定到INADDR_ANY,通配于服务器的所有IP地址

#Listen 192.68.0.5

##### error_log和access_log会自动生成,只要指定生成路径就可以了。  

ErrorLog /boa/log/error_log  

AccessLog /boa/log/access_log    

##### 存放html文件的根路径  

DocumentRoot /boa/www  

UserDir public_html    

##### 默认页面,若输入http://127.0.0.1/则会自动返回给浏览器默认页面index.html  

DirectoryIndex index.html    

##### 保持默认  

DirectoryMaker /boa/boa_indexer   //被修改

KeepAliveMax 1000  

KeepAliveTimeout 10  

MimeTypes /boa/mime.types   //被修改

DefaultType text/plain    

#####指定传给cgi程序的PATH环境变量  

CGIPath /bin:/usr/bin:/usr/local/bin   

#####保持默认  

Alias /doc /usr/doc   

#####如果输入http://127.0.0.1/cgi-bin/test.cgi, 则boa服务器会到/boa/cgi-bin中寻找test.cgi程序。  

ScriptAlias /cgi-bin/ /boa/cgi-bin/  

 建立安装目录:(这里是在将boa的服务器设置在 根目录 /boa  下的前提下进行,对于其他目录,注意修改)

mkdir -p /boa /boa/www /boa/cgi-bin /boa/log

 

将需要的文件复制到安装目录中

将boa-0.94.13/src目录下生成的boa、boa_indexer二进制文件复制到/boa下

将boa-0.04.13目录下的boa.conf文件复制到/boa下

将/etc/mime.types复制到/boa目录下

此时整个boa服务器移植完成,但是还需要测试boa服务器是否移植成功

 

以上是关于boa服务器移植与CGIC库的安装使用的主要内容,如果未能解决你的问题,请参考以下文章

cgic简介

boa 登录 医疗检测

Boa服务器编译移植

SylixOS移植Boa服务器

嵌入式boa服务器移植

三种嵌入式web服务器(Boa / lighttpd / shttpd)的 linux移植笔记