将WebServer Boa移植到ARM上

一、在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 :指定脚本路径的虚拟路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值