移植Boa可以先在自己系统上先运行起来在想开发板移植,这样可以避免把文件在开发板和电脑之间来回传输,节省时间!
1、下载源码
下载网址: http://www.boa.org/
最新版本: 0.94.13 (从0.95版本以后,BOA不再开源发布)
文件名称: boa-0.94.13.tar.gz
2、解压缩 tar -xvf boa-0.94.13.tar.gz
3、进入boa-0.94.13/src下执行命令./configure生成Makefile
4、make生成boa
出现错误:
make: yacc:命令未找到
make: *** [y.tab.c] 错误 127
make: lex:命令未找到
make: *** [lex.yy.c] 错误 127
这是没有安装bison和flex造成的,我的是ubuntu系统执行
sudo apt-get install bison flex命令即可安装成功
重新make出现这样的错误:
util.c: 在函数‘get_commonlog_time’中:
util.c:100:1: 错误: 毗连“t”和“->”不能给出一个有效的预处理标识符
make: *** [util.o] 错误 1
修改compat.h中的#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff为:#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff或改用2.95.3版本的编译器
make....成功!
5、创建以下这几个目录/etc/boa(存放boa.conf)、/var/log/boa、/var/www和/var/www/cgi-bin
6、修改boa-0.94.13目录下的boa.conf
修改访问权限:修改User nobody 为 User 0;
修改Group nogroup 为 Group 0;
将ScriptAlias /cgi-bin/ /usr/lib/cgi-bin 修改为ScriptAlias /cgi-bin/ /var/www/cgi-bin
修改/var/log/boa目录的权限为可写的,否则会出项错误:log.c:73 – Unable to dup2 the error log: Bad file r.
7、将boa.conf复制到/etc/boa目录下
将boa-0.94.13/examples/cgi-test.cgi复制到/usr/www/cgi-bin
将一个index.html文件复制到/usr/www
将mime.types存放在boa.conf文件中MimeTypes /etc/mime.types指定的目录即可
8、运行./boa&
9、测试在浏览器地址栏输入192.168.1.110不能连接到我们的网页
查看/var/log/boa目录下的error_log文件发现提示这样的错误:
boa.c:228 - icky Linux kernel bug!: No such file or directory
这个错误可将if (setuid(0) != -1) { DIE(”icky Linux kernel bug!”); }
boa.c里这几行程序注释掉。
boa.c:194 - unable to bind: Permission denied 这个错误是因为我们的80端口被占用了将boa.conf文件里的 Port 80修改为Port 8080
重新运行./boa&,如果你在error_log文件里看到
[05/May/2014:13:39:25 +0000] boa: server version Boa/0.94.13
[05/May/2014:13:39:25 +0000] boa: server built May 5 2014 at 20:35:26.
[05/May/2014:13:39:25 +0000] boa: starting server pid=5926, port 8080
这样的日志说明你的boa已经成功运行了。
在浏览器地址栏里输入192.168.1.110:8080回车浏览器里显示了我们的页面。