一、在Boa的官网上下载Boa
网址:www.boa.ort
二、拷贝到虚拟机的共享目录下、解压
tar zxf boa-0.94.13.tar.gz
三、进入src文件夹,进行对代码的修改
1.打开compat.h
将
define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
修改为:
#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff
2.打开boa.c文件将225-227行注释
if(setuid(0) != -1)
{
DIE(”icky Linux kernel bug!”);
}
为
/*
if (setuid(0) != -1)
{
DIE(”icky Linux kernel bug!”);
}
*/
四、生成Makefile 文件,并修改Makefile
1. ./configure
2. 修改Makefile里面的编译工具链为你的交叉编译工具链
五、make,make之后就会在src目录下生成boa可执行程序
将生成好的boa可执行文件去掉冗余信息:
arm-linux-strip boa
六、修改配置文件bao.conf,找到以下配置选项并修改
1. Port = 80
2. User root
Group root
3. DocumentRoot /var/www/boa //客户端要显示HTML页面的存放路径
4. DirectoryIndex index.html //客户端要显示的页面
5. ScriptAlias /cig-bin/ /usr/local/boa/cgi-bin //客户端要显示cgi程序的路径
七、开始移植文件到开发板上
1.将配置文件boa.conf和boa可执行程序 拷贝到开发板的 /etc/boa/ 目录下。
2. 创建/var/log/boa/ 目录,这样Boa服务器启动时会在该目录下创建日志文件。
3.将Linux系统上/etc/mime.types 文件复制到开发板的/etc 目录下,否则Boa服务器启动不起来。
4.将html的页面拷贝到开发板的目录下(第六步配置的目录)。
六、至此移植成功
输入/etc/boa/boa 即可启动服务器,并在PC上使用ip地址可访问html页面(前期是你的开发板要和PC上ping通)
附录:
boa.conf各参数的意思
Port : boa 服务器监听的端口,默认的端口是 80 。如果端口小于 1024 ,则必须是 root 用户启动服务器。
Listen :绑定的 ip 地址。不使用这个参数时,将绑定所有的地址。
User :连接到服务器的客户端的身份,可以是用户名或 UID 。
Group :连接到服务器的客户端的组,可以是组名或 GID 。
ServerAdmin :服务器出故障时要通知的邮箱地址。
ErrorLog :指定错误日志文件。如果路径没有以“ / ”开始,则相对于 ServerRoot 路径。没有配置时默认的文件是 /dev/stderr 。若不想记录日志,指定文件为 /dev/null 。
AccessLog :设置存取日志文件,与 ErrorLog 类似。
UseLocaltime :设置使用本地时间,使用 UTC 时注释这个参数。这个参数没有值。
VerboseCGILogs :在错误日志文件中记录 CGI 启动和停止时间,若不记录,注释这个参数。这个参数没有值。
ServerName :指定服务器的名称,当客户端使用 gethostname + gethostbyname 时返回给客户端。
VirtualHost :虚拟主机开关。使用此参数,则会在 DocumentRoot 设定的目录添加一个 ip 地址作为新的 DocumentRoot 来处理客户端的请求。如 DocumentRoot 设置为 /var/www ,则 http://localhost/ 则转换成 /var/www/127.0.0.1/ ,若注释此参数,则为 /var/www/ 。
DocumentRoot : HTML 文件的根目录(也就是网站的目录)。
UserDir :指定用户目录。
DirectoryIndex :指定预生成目录信息的文件,注释此变量将使用 DirectoryMaker 变量。这个变量也就是设置默认主页的文件名。
DirectoryMaker :指定用于生成目录的程序,注释此变量将不允许列目录。
DirectoryCache :当 DirectoryIndex 文件不存在,而 DirecotryMaker 又被注释掉时,将列出这个参数指定目录给客户端。
KeepAliveMax :每个连接允许的请求数量。如果将此值设为 " 0 " ,将不限制请求的数目。
KeepAliveTimeOut :在关闭持久连接前等待下一个请求的秒数。(秒)。
MimeTypes :设置包含 mimetypes 信息的文件,一般是 /etc/mime.types 。
DefaultType :默认的 mimetype 类型,一般是 text/html 。
CGIPath :相当于给 CGI 程序使用的 $PATH 变量。
SinglePostLimit :一次 POST 允许最大的字节数,默认是 1MB.
AddType : 增加 MimeType 没有指定的类型,例 : AddType type extension [extension ...] 。要使用 cgi ,必须添加 cgi 类型: AddType application/x-httpd-cgi cgi
Redirect :重定向文件
Aliases :指定路径的别名。
ScriptAlias :指定脚本路径的虚拟路径。