版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
准备工作1.下载Boa源码
下载地址:/
最新发行版本:0.94.13
下载boa-0.94.13.tar.gz,注意:从boa上下载的是boa-0.94.13.tar.tar,解压方式一样
将下载的文件放入用户目录解压:#tarxzfboa-0.94.13.tar.gz
2、生成Makefile文件
boa-0.94.13.tar.gz解压后生成boa-0.94.13目录,运行boa-0.94.13/src/configure文件,执行:#cdboa-0.94.13/src#./configure
3、修改Makefile文件(注意:必须用cross-2.95.3,如使用3.3.2,3.4.1等等会出错)
a、修改CC=gcc
为CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc(根据自己电脑主机的编译器位置定)
b、修改CPP=gcc-E
为CPP=/usr/local/arm/2.95.3/bin/arm-linux-gcc-E
4、编译
进入boa-0.94.13/src目录
#make
#/usr/local/arm/2.95.3/bin/arm-linux-stripboa
(这是为了进行去除boa中生成的编译信息,让文件变小,我在移植过程中没有执行这一步)5.将编译好的程序放入arm根文件系统的/bin目录下#cpboa/home/arm/nfs/rootfs/bin/
Boa的配置
这一步的工作也在电脑主机上完成。
在电脑主机上的Boa源码boa-0.94.13目录下已有一个示例boa.conf,可以在其基础上进行修改。如下:#viboa.conf
1、Group的修改
修改Groupnogroup
为Group0
2、ScriptAlias的修改
修改ScriptAlias/cgi-bin/
/usr/lib/cgi-bin/
为ScriptAlias/cgi-bin/
/var/www/cgi-bin/
3、ServerName的设置
修改#ServerName.here
为ServerName.here
注意:该项默认为未打开,执行Boa会异常退出,提示“gethostbyname::Nosuchfileordirectory”,所以必须打开。其它默认设置即可。此外,还需要将mime.types文件复制根文件系统/etc目录下,通常可以从linux主机的/etc目录下直接复制即可。#cp/etc/mime.typesetc/(以下配置和boa.conf的配置有关,都是在ARM根文件系统中创建)创建日志文件所在目录/var/log/boa创建HTML文档的主目录/var/www创建CGI脚本所在录/var/www/cgi-bin#mkdir-m777boa
#cd..
#mkdir-m777www
#mkdir-m777www/cgi-bin
#cd..
将主机/usr/share/doc/HTML/目录下的index.html(这个是静态的html网页显示文件,是redhat9的欢迎主页,当在局域网的PC的IE上输入http://嵌入式板子的IP地址时会显示这个默认的静态网页)文件和img目录复制到根文件系统的/var/www目录下
#cp/usr/share/doc/HTML/index.html
/var/www/
#cp/usr/share/doc/HTML/img
/var/www/将修改后的文件系统下载到ARM板(也可以用nfs启动)运行Boa开发板操作:#boa出错,后来发现etc目录下原来复制进来的文件不见了,后来发现可能是因为系统启动时将文件挂载在这个文件夹,之前存在的文件都被这些命令删除了。后来我在根文件系统的根目录创建了一个新目录www#mkdirwww将etc下的boa文件夹和mime.types文件复制到www,在系统启动linuxrc脚本中,执行完加载的后面添加一条命令将保存在www中的文件复制到etc目录,即添加/bin/cp–r/www/*/etc重新下载根文件系统到开发板后,执行命令boa#boa出错,超级终端显示:log.c:73unabletodup2theerrorlog:badfiledescriptor解决方法:在log.c里注释掉那个if语句。修改后重新执行make等命令,继续上述操作
又出现了另个问题:unabletodup2theerrorlog:Badfiledescriptor因为我的文件系统是cramfs,只读的
解决方法:在boa.conf里注释掉#AccessLog/var/log/boa/access_log完成配置后,继续执行命令#boa成功,终端显示:boa:serverversionBoa/0.94.13boa:serverbuiltMar112009at20:40:11boa:startingserverpid=765,port80因为我的主机IP为23,接下来设置开发板IP#ifconfigeth020连接PC和ARM网络接口,在浏览器中输入输入开发板的IP地址,即20,出现是redhat9的欢迎主页,静态网页调试成功CGI功能测试编写hellocgi.c程序#vihellocgi.c程序如下:
#include<stdio.h>
#include<stdlib.h>
intmain(void)
{
printf("Content-type:text/html\n\n");
printf("<html>\n");
printf("<head><title>CGIOutput</title></head>\n");
printf("<body>\n");
printf("<h1>Hello,world.</h1>\n");
printf("<body>\n");
printf("</html>\n");
exit(0);
}交叉编译CGI程序#/usr/local/arm/2.95.3/bin/arm-linux-gcc-ohellocgihellocgi.c将hellocgi拷贝至嵌入式板子的/var/www/cgi-bin/下,当在局域网PC的IE上输入20/cgi-bin/hellocgi显示出hellocgi的网页。
网页出现Hello,world.移植成功!本次移植的主要参考:/u1/34474/showart.php?id=486604在这里衷心的感谢作者!/u1/34474/showart.php?id=486604内容移植BoaWeb服务器到ARM-Linux系统本次移植的主要参考资料:
1、《嵌入式Web服务器移植》是网上一份Boa移植文档,比较全面。本文档就是基本参照它来写的。基本上上可以说是这篇文章的修改版,增加了我的移植经验。由于这篇文章被转载得到处都是,我实在无法找到出处。在这里衷心的感谢文章作者!!
2、《构建嵌入式Linux系统》的第十章设置网络服务中的Boa移植部分。Boa程序的移植1、下载Boa源码
下载地址:/
目前最新发行版本:0.94.13
(几年没更新版本了)
下载boa-0.94.13.tar.gz,注意:若从boa上下载的是boa-0.94.13.tar.tar,解压方式一样
解压:ekkamanninja@Tekkaman-Ninjasource]$tarxzfboa-0.94.13.tar.gz生成Makefile文件
进入boa-0.94.13,直接运行src/configure文件ekkamanninja@Tekkaman-Ninjasrc]$./configure改Makefile文件(注意:必须用cross-2.95.3,如使用3.4.1、4.1.1等等会出错)CC=/home/tekkamanninja/working/source/2.95.3/bin/arm-linux-gcc
CPP=/home/tekkamanninja/working/source/2.95.3/bin/arm-linux-gcc–E交叉编译tekkamanninja@Tekkaman-Ninjasrc]$make去除调试信息,减小体积。(可选)[tekkamanninja@Tekkaman-Ninjasrc]$/home/tekkamanninja/working/source/2.95.3/bin/arm-linux-stripboa6、将编译好的程序放入根文件系统的/bin目录下。[tekkamanninja@Tekkaman-Ninjasrc]$cpboa/home/tekkamanninja/working/nfs/rootfs/bin/配置BoaBoa需要在/etc目录下建立一个boa目录,里面放入Boa的主要配置文件boa.conf。在Boa源码目录下已有一个示例boa.conf,可以在其基础上进行修改。[tekkamanninja@Tekkaman-Ninjasrc]$cd../..
[tekkamanninja@Tekkaman-Ninjasource]$cd../nfs/rootfs/etc/
[tekkamanninja@Tekkaman-Ninjaetc]$mkdirboa
[tekkamanninja@Tekkaman-Ninjaetc]$chmod777boa/
[tekkamanninja@Tekkaman-Ninjaetc]$cdboa
[tekkamanninja@Tekkaman-Ninjaboa]$kwriteboa.conf1、Group的修改修改Groupnogroup
为Groupuser(开发板上有的组)
修改Usernobody
为Userboa(user组中的一个成员)根据你的开发板的情况设定。一定要存在的组和用户。
以下是我在开发板上的操作:[root@~]#adduser-guserboa
Changingpasswordforboa
Enterthenewpassword(minimumof5,maximumof8characters)
Pleaseuseacombinationofupperandlowercaselettersandnumbers.
Enternewpassword:
Badpassword:tooshort.
Warning:weakpassword(continuing).
Re-enternewpassword:
passwd[820]:passwordfor`boa'changedbyuser`root'
Passwordchanged.
[root@~]#2、ScriptAlias的修改修改ScriptAlias/cgi-bin/
/usr/lib/cgi-bin/
为ScriptAlias/cgi-bin/
/var/www/cgi-bin/这是在设置CGI的目录,你也可以设置成别的目录。比如用户文件夹下的某个目录。3、ServerName的设置修改#ServerName.here
为ServerName.here注意:该项默认为未打开,执行Boa会异常退出,提示“gethostbyname::Nosuchfileordirectory”,所以必须打开。其它默认设置即可。你也可以设置为你自己想要的名字。比如我设置为:ServerNametekkaman2440此外,还需要:将mime.types文件复制/etc目录下,通常可以从linux主机的/etc目录下直接复制即可。(以下配置和boa.conf的配置有关)创建日志文件所在目录/var/log/boa创建HTML文档的主目录/var/www创建CGI脚本所在录/var/www/cgi-bintekkamanninja@Tekkaman-Ninjalog]$mkdir-m777boa
[tekkamanninja@Tekkaman-Ninjalog]$cd..
[tekkamanninja@Tekkaman-Ninjavar]$mkdir-m777www
[tekkamanninja@Tekkaman-Ninjavar]$mkdir-m777www/cgi-bin
[tekkamanninja@Tekkaman-Ninjavar]$cd..
[tekkamanninja@Tekkaman-Ninjarootfs]$cp/etc/mime.typesetc/运行Boa开发板操作:[root@~]#boa如果发现boa没有运行,则可以在开发板的/var/log/boa/error_log文件中找原因。比如端口已被其他程序占用:[root@~]#cat/var/log/boa/error_log
[20/Feb/2008:21:21:57+0000]boa.c:194-unabletobind:Addressalreadyinuse或是用户设置错误等等,都可以查到。四、功能测试静态网页测试将静态网页存入根文件系统的/var/www目录下(可以将主机/usr/share/doc/HTML/目录下的index.html、homepage.css和img、stylesheet-images目录复制到/var/www目录下)我参考《嵌入式Web服务器移植》的做法如下:在根文件系统的/var目录下[tekkamanninja@Tekkaman-Ninjavar]$cp/usr/share/doc/HTML/index.htmlwww/
[tekkamanninja@Tekkaman-Ninjavar]$cp-r/usr/share/doc/HTML/imgwww/
[tekkamanninja@Tekkaman-Ninjavar]$cp/usr/share/doc/HTML/homepage.csswww/
[tekkamanninja@Tekkaman-Ninjavar]$cp-r/usr/share/doc/HTML/stylesheet-imageswww/接在浏览器中输入开发板的IP地址(比如我的是),出现fedora的欢迎网页。静态HTML调试成功。CGI功能测试1、编写HelloworldCGI.c程序[tekkamanninja@Tekkaman-Ninjasource]$vihelloworldCGI.c(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宝妈可以报考执业药师资格证吗
- 2024-2025学年四川省广元市高一下学期期末教学质量监测历史试题(解析版)
- 2026年电力行业知识测试国家电网公司电力工程师笔试试题及答案
- 2025 小学六年级道德与法治上册家乡文化的创新责任课件
- 四实五必须登记制度
- 学年新教材高中英语单元素养检测四UnitBodyLanguage含解析新人教版选择性必修第一册
- 近现代史党史题目及答案
- 河北知识点视图
- 小六爻推算题目及答案
- 五下探索图形规律题目及答案
- 七七事变与全民族抗战 说课课件 2024-2025学年统编版八年级历史上学期
- 2025年湖北省中考生物、地理合卷试卷真题(含答案)
- 井下应急广播管理制度
- 有效排痰护理
- 养老服务专项资金支付审核流程
- 尸检申请书模板
- 《网络安全标准实践指南-网络数据安全风险评估实施指引》
- 平滑肌瘤完整版本
- 唱歌技巧教学课件模板
- 猪场母猪能繁项目母猪生产线土建钢构舍水电工程施工方案与技术措施
- 企业社会责任手册
评论
0/150
提交评论