一、配置编译boa
1. #tar zxvf boa-0.94.13.tar.gz
2. #mv boa-0.94.13 boa_arm
3. #cd boa_arm/src
4.boa.conf生效目录设置
boa启动过程中需要读取一个配置文件:boa.conf,它的路径由以下文件决定
第30行 #define SERVER_ROOT "/etc/boa",默认为/etc/boa文件夹
我们为了统一路径起见,改为:"/usr/boa",接下来所有跟boa有关的文件我们都放在/usr/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.c:226 - icky Linux kernel bug!: No suchfile or directory错误
6. #./configure
7.修改交叉编译器
修改Makefile文件:
将:
CC = gcc
CPP = gcc -E
该为:
CC = arm-linux-gcc
CPP = arm-linux-gcc -E
8. 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.conf
1.建立/usr/boa目录, 并复制boa.conf到/usr/boa目录下,并按照以下步骤进行修改。
#mkdir /usr/boa
#cp boa.conf/usr/boa
2.访问端口号设置
3. 修改访问权限:
修改User nobody 为 user 0
修改Group nogroup 为 group 0
4. 设定日志目录:boa日志有两部分,Errorlog 和 AccessLog
默认为/var/log/boa/error_log和/var/log/boa/access_log两个文件。
所以我们统一修改为:
ErrorLog /usr/boa/error_log
AccessLog /usr/boa/access_log
(注意:这里/home/boa目录必须为可写,否则会出项错误:log.c:73 – Unable to dup2 the error log: Bad file r.)
5. 设置html文件目录:
6. 设置默认首页: DirectoryIndex index.html
7. 设置cgi脚本目录: 将
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin
修改为
ScriptAlias /cgi-bin/ /usr/boa/cgi-bin
注:boa提供cgi编程接口,使得网页具有交互能力,后面我们在做讲解.
8. mime.types存放目录, 可在boa.conf文件中修改。
如: MimeTypes /usr/boa/mime.types
或者将boa.conf文件中
MimeTypes /etc/mime.types
修改为:
MimeTypes /dev/null
9.把boa.conf大约第94行的注释去掉
ServerName www.your.org.here
10.测试