【工作学习笔记】——boa移植笔记

近段时间做毕业设计涉及到boa web服务器的移植。在移植到ARM开发板的过程中,遇到很多的问题。

现将移植步骤整理如下:(其中涉及到个人习惯和路径问题,视各自情况而定)

1.下载源码:

下载网址http://www.boa.org/boa-0.94.13.tar.gz,但实际上下载的包为boa-0.94.13.tar.tar

2.解压源码包:

将源码拷贝到/usr/src目录下,

#tar -xvf boa-0.94.13.tar.tar

之后,会在/usr/src目录下生成boa-0.94.13目录。

3.修改源码:

①修改boa-0.94.13/src目录下的boa.c源文件,大概在225行,注释掉如下语句:

if (setuid(0) != -1){

          DIE("icky Linux kernel bug!");

}

注释掉的具体原因还没有弄懂!正在研究中……不注释无法使用post方法。

②修改boa-0.94.13/src目录下的compat.h头文件,大概在120行,修改如下:

将foo##->tm_gmtoff中的##去掉即可,不然在编译时会出现:

util.c:100:1:error:pasting "t" and "->"does not give a valid prearocessing token.

具体原因可能是使用了较高版本的编译器。

4.执行configure:

在boa-0.94.13/src目录下执行configure:

#./configure

之后会生成Makefile文件

5.修改Makefile文件:

修改boa-0.94.13/src目录下的Makefile文件,修改如下:(前提是已配置好交叉编译工具链)

将CC = gcc修改为CC=arm-linux-gcc

将CPP = gcc -E 修改为CPP=arm-linux-gcc -E

6.执行make:

在boa-0.94.13/src目录下执行make:

#make

之后会在boa-0.94.13/src目录下生成boa可执行文件,即可以在ARM板子上运行的程序。

7.在开发板上创建执行目录:

#mkdir /var/www                (如果有了,就省略)

#mkdir /var/www/cgi-bin

#mkdir /var/log

#mkdir /var/log/boa

#mkdir /etc/boa

将在boa-0.94.13/目录下的boa.conf文件拷贝到开发板/etc/boa目录下;

将宿主机中/etc/mime.types文件拷贝到开发板/etc目录下;

将boa-0.94.13/src目录下的boa拷贝到开发板/bin目录下(或其他默认系统路径);

8.修改boa.conf文件:

①修改48行:User nobody 为 User root

②修改193行:ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 为 ScriptAlias /cgi-bin/  /var/www/cgi-bin/

至此,boa移植完毕。

 

你可能感兴趣的:(gcc,user,web服务,makefile,编译器)