Boa 官 方 网 站http://www.boa.org/ ,下载地址http://www.boa.org/boa-0.94.13.tar.gz
(1)编译Boa服务器
解压 tar -jxvf boa-0.94.13.tar.gz源码,进入boa-0.94.13目录
tar -jxvf boa-0.94.13.tar.gz
首先修改./src/compat.h文件,将 #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff 修改为#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff 。修改后的如下图:
再修改./src/boa.c
注释掉“ if(srtuid(0)! = -1) { DIE("icky Linux kernel bug!")} ” ,修改后内容如下
进入./src目录,执行./configure命令生成Makefile,将Makefile的交叉编译器修改为自己安装的交叉编译器,我的交叉编译器是arm-linux-gnueabihf-gcc,将CC=gcc改为CC=arm-linux-gnueabihf-gcc,CPP=gcc -E改为CPP = arm-linux-gnueabihf-gcc -E。修改后的内容如下
执行make命令,如果提示yacc和lex找不到,报如下错误
则运行
sudo apt-get install flex bison
再执行make生成镜像文件boa,再用strip将boa压缩
编辑boa.conf内容为如下(视个人需求配置),每项具体含义可以参考以下链接:嵌入式linux web服务器boa的移植方法arm开发板linux嵌入式web服务器boa.pdf-原创力文档
Port 80
#Listen 192.168.43.55
User nobody
Group nogroup
#ServerAdmin root@localhost
#ErrorLog /var/log/boa/error_log
#AccessLog /var/log/boa/access_log
#VerboseCGILogs
ServerName ppj
#VirtualHost
DocumentRoot /www
#UserDir public_html
DirectoryIndex index.html
#DirectoryMaker /usr/lib/boa/boa_indexer
#DirectoryCache /var/spool/boa/dircache
KeepAliveMax 1000
KeepAliveTimeout 10
MimeTypes /etc/mime.types
DefaultType text/plain
CGIPath /bin:/usr/bin:/usr/local/bin
#AddType application/x-httpd-cgi cgi
# Redirect /bar http://elsewhere/feh/bar
Alias /doc /usr/doc
ScriptAlias /cgi-bin/ /www/cgi-bin/
最后一项 ScriptAlias /cgi-bin/ /www/cgi-bin/中,前面的/cgi-bin/是虚拟路径, /www/cgi-bin/是开发板存放cgi脚本的实际路径。所有的CGI脚本都放在实际路径中,用户访问执行格式是:输入站点+虚拟路径+CGI脚本名。例如
http://192.168.1.188/cgi-bin/cgictest.cgi
在开发板创建目录/etc/boa ,并且把boa.conf 拷贝到这个目录下 ,并在开发板根目录
下创建相关目录 ,如下图。
将开发主机linux 下/etc/mime.type 拷贝到开发板的/etc下 ,boa镜像文件拷贝到开发板的/sbin目录下。至此Boa移植完成 ,编译测试html ,将电脑和开发板设置到同一个局域网,输入网址即可访问。