编译环境:Ubuntu 10.04
arm-linux-gcc版本:4.5.3
- 移植步骤
1. 安装所需的软件包
# apt-get -y install byacc flex
---------------------------------------------------
2. 下载并解压最新源码包
# tar -zxvf boa-0.94.13.tar.gz -C /usr/src/
---------------------------------------------------
3. 编译
# cd /usr/src/boa-0.94.13/src/
# ./configure
# vi Makefile +31
CC = arm-linux-gcc // 修改31行
CPP = arm-linux-g++ -E // 修改32行
# vi compat.h +120
修改
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
为(去掉foo后面的##)
#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
为(去掉foo后面的##)
#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff
# vi boa.c +225
注释掉
if (setuid(0) != -1) {
DIE("icky Linux kernel bug!");
}
即修改为
#if 0
if (setuid(0) != -1) {
DIE("icky Linux kernel bug!");
}
#endif
if (setuid(0) != -1) {
DIE("icky Linux kernel bug!");
}
即修改为
#if 0
if (setuid(0) != -1) {
DIE("icky Linux kernel bug!");
}
#endif
# make
# arm-linux-strip boa
# arm-linux-strip boa_indexer
---------------------------------------------------
4. 参数配置
# vi ../boa.conf
(仅列出部分比较重要的参数)
Line 48: User root
Line 49: Group root
Line 49: Group root
Line 62: ErrorLog /var/log/boa/error_log
Line 74: AccessLog /var/log/boa/access_log
Line 94: ServerName
www.your.org // 必须取消原有的注释,否则boa无法启动
Line 111: DocumentRoot /var/www
Line 123: DirectoryIndex index.html
Line 130: DirectoryMaker /usr/sbin/boa_indexer
Line 155: MimeTypes /etc/mime.types
Line 164: CGIPath /bin:/usr/bin:/usr/local/bin
Line 193: ScriptAlias /cgi-bin/ /var/www/cgi-bin/
! ServerName 可任意修改
! DocumentRoot 指定目标板上用于存放html文件的根目录
---------------------------------------------------
5. 测试
! 文件放置的路径必须和配置文件指定的路径一致
(1) 拷贝boa.conf到目标板的/etc/boa目录;拷贝mime.types到目标板的/etc目录
(2) 拷贝boa、boa_indexer到目标板的/usr/sbin目录
(3) 在目标板创建所需的目录:
# mkdir -p /var/www/cgi-bin
# mkdir /var/log/boa
(4) 在目标板的/var/www目录下创建index.html,文件内容如下:
<html>
<head><h3>BOA Test Page</h3></head>
<body>
Hello, BOA!
<form action=/cgi-bin/test.cgi method=POST>
<input type=submit name="OK" value="ok">
</form>
</body>
</html>
<head><h3>BOA Test Page</h3></head>
<body>
Hello, BOA!
<form action=/cgi-bin/test.cgi method=POST>
<input type=submit name="OK" value="ok">
</form>
</body>
</html>
(5) 在目标板的/var/www/cgi-bin目录下创建test.cgi,文件内容如下
#!/bin/sh
echo Content-type: text/plain
echo
echo `/bin/date`
echo Content-type: text/plain
echo
echo `/bin/date`
! 创建完成后赋予该文件可执行权限:
# chmod a+x /var/www/cgi-bin/test.cgi
# boa // 启动boa
! boa启动成功后不会有任何提示,此时可在浏览器输入目标板的IP地址,效果如下图所示:
点击“ok”按钮后效果如下:
---------------------------------------------------