boa服务器移植的移植与内核版本有关系吗

关于boa的一些疑问 - 嵌入式资料区 -
嵌入式开发联盟
关于boa的一些疑问
UID10176&帖子139&积分198&联盟金币:198 元&在线时间55 小时&注册时间&
关于boa的一些疑问
如果已经在开发板上配好了boa,而且开发板已经连上了网线。当我再开发板上运行boa的时候,按理说只要是局域网就能通过boa服务器访问开发板了(如访问开发板上已写好的一些静态网页)...如果上述观点没问题,那为何总是无法在PC上访问开发板呢??而在开发板上能通过浏览器访问开发板上的网页,说明boa移植没问题...而且我把resolv.conf放到/etc下也不好使。大侠帮帮忙吧,我不行了。。。(注意,到目前为止,开发板还不能上网,输入网址就提示Unknown host)
UID2&帖子1735&积分10603&联盟金币:4603 元&在线时间2010 小时&注册时间&
你的问题还是板子上的网卡没能正常工作起来!
在板子上执行&ifconfig -a& 能看到eth0设备吗,如果该设备也识别了,ip也正确了,那就只能在网卡的驱动上排查了。。。(在配置内核的时候一般都能找到支持你网卡的驱动的,如果你网卡不是太异类的话,所以检查一下你板子上网卡的型号,然后确认在内核里有它的支持。。。然后正确选择,重新编译内核)
UID10176&帖子139&积分198&联盟金币:198 元&在线时间55 小时&注册时间&
重新编译,是不是意味着我要重新移植内核??那我之前移植到开发板的那些东西是不是都没了?
UID2&帖子1735&积分10603&联盟金币:4603 元&在线时间2010 小时&注册时间&
你用的是Windows PC吗? 也许是Windows代理的问题。。。
另,开发板访问外网的问题已经解答了(前提是你的内网要通):
UID10176&帖子139&积分198&联盟金币:198 元&在线时间55 小时&注册时间&
有重大突破,换了内核后发觉还是不好使,最终只能怀疑这到底是不是局域网的问题了。气炸了,换了交换机后就可以通过PC访问开发板了,可能是对“局域网”这概念不了解,但计算机间的IP前三个字段确实是一样的。
现在内网可以ping通了,外网还是出现Unknown host的情况,你说的那个网关配置是在resolv.conf里添加route这句话不?我这样配了还是不行...
UID10176&帖子139&积分198&联盟金币:198 元&在线时间55 小时&注册时间&
我真是太菜了。原来route是一条指令。执行该指令后,确实是没有unknown host的提示了,只不过输入网址时,浏览器没反应,什么也没显示。请问这可能是什么原因导致的呢?望指点一二,Thanks&&O(∩_∩)O~
UID10176&帖子139&积分198&联盟金币:198 元&在线时间55 小时&注册时间&
不好意思,更正一下,输入网址后良久没有反应,以为不会提示unknown host了,谁知刚发完贴就弹出那个提示框了,还是 unknown host
UID10176&帖子139&积分198&联盟金币:198 元&在线时间55 小时&注册时间&
这时超级终端显示:hub 1-0:1.0: connect-debounce failed . port 2 disabled
UID2&帖子1735&积分10603&联盟金币:4603 元&在线时间2010 小时&注册时间&
设置网关之后,你先在板子的终端ping
看能否通 ?
你上面的错误好像是hub不工作了,重启板子试试。。。
UID10176&帖子139&积分198&联盟金币:198 元&在线时间55 小时&注册时间&
重启还是不行,ping后超级终端提示:host name lookup failure
UID2&帖子1735&积分10603&联盟金币:4603 元&在线时间2010 小时&注册时间&
你的loop设备配置了吗?
配置命令: ifconfig lo 127.0.0.1 up
UID10176&帖子139&积分198&联盟金币:198 元&在线时间55 小时&注册时间&
我在开发板上执行那条指令还是unknown host。谢谢帮忙,我再找找吧,总是浪费你时间,真不好意思。
[通过 QQ、MSN 分享给朋友]
网页右侧QQ悬浮滚动在线客服
站长的QQ:
邀请码QQ:
网页右侧QQ悬浮滚动在线客服
站长的QQ:
邀请码QQ:1364人阅读
嵌入式web服务器的搭建和web网站的制作(6)
注释:---下文内容主要载自《嵌入式web服务器及远程测控应用详解v0.1》,其中也包含了个人的一些注解和总结,如有问题请共同商讨,谢谢。
《嵌入式web服务器及远程测控应用详解v0.1》的下载地址:。
1.1 嵌入式 BOA 服务器移植
移植过程参考《嵌入式 Linux 系统开发详解— — 基于 EP93XX 系列 ARM》及网络上一
篇文章《WEB 服务器-----Boa 实验笔记》,下面是自己在 S3C2410 平台上移植 Boa 的过程。
第一步完成 Boa 程序的移植
上下载 Boa 源码,当前的版本是 0.94.13,将其解压并进入源码目录的
src 子目录。
# tar xzf boa-0.94.13.tar.gz
# cd boa-0.94.13/src
生成 Makefile 文件
# ./configure
修改 Makefile 文件(注:这里修改根据自己的交叉编译器自行修改,例如我的是arm-none-linux-gnueabi-gcc,有的是arm-linux-gcc等等),修改 CC = gcc
为 CC =armv4l-unknown-linux-gcc&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
修改 CPP = gcc - E
为 CPP = armv4l-unknown-linux-gcc –E
修改 头文件 defines.h
找到#define SERVER_ROOT “/etc/boa” 修改成
#define SERVER_ROOT “/var/www”
这里定义的是 web 服务器的文件根目录(用户可以自行定义,是板上的目录,只要跟 boa.conf 中设置一致
就可以了)
然后运行 make 进行编译,得到的可执行程序 boa,将调试信息剥去,得到的最后程序只有
62872Byte 大小。
# armv4l-unknown-linux-strip boa
第二步完成 Boa 的配置,使其能够支持 CGI 程序的执行。在 boa 源码目录下有一个 boa.conf
可以对其作如下修改:
# Boa v0.94 configuration file
# File format has not changed from 0.93
# File format has changed little from 0.92
# version changes are noted in the comments
# The Boa configuration file is parsed with a lex/yacc or flex/bison
# generated parser. If it reports an error, the line number will be
# rules is very simple, and they can occur in any order. Where possible
# these directives mimic those of NCSA httpd 1.3; I saw no reason to
# introduce gratuitous differences.
# $Id: boa.conf,v 1.25
04:33:09 jnelson Exp $
# The &ServerRoot& is not in this configuration file. It can be compiled
# into the server (see defines.h) or specified on the command line with
# the -c option, for example:
# boa -c /usr/local/boa
# Port: The port Boa runs on. The default port for http servers is 80.
# If it is less than 1024, the server must be started as root.
# Listen: the Internet address to bind(2) to. If you leave it out,
# it takes the behavior before 0.93.17.2, which is to bind to all
# addresses (INADDR_ANY). You only get one &Listen& directive,
# if you want service on multiple IP addresses, you have three choices:
# 1. Run boa without a &Listen& directive
# a. All addresses
makes sense if the addresses
# are localhost, ppp, and eth0.
# b. Use the VirtualHost directive below to point requests to different
# files. Should be good for a very large number of addresses (web
# hosting clients).
# 2. Run one copy of boa per IP address, each has its own configuration
# with a &Listen& directive. No big deal up to a few tens of addresses.
# Nice separation between clients.
# The name you provide gets run through inet_aton(3), so you have to use dotted
# quad notation. This configuration is too important to trust some DNS.
#Listen 192.68.0.5
# User: The name or UID the server should run as.
# Group: The group name or GID the server should run as.
User nobody
# ServerAdmin: The email address where server problems should be sent.
# for CGIs.
#ServerAdmin
# ErrorLog: The location of the error log file. If this does not start
# with /, it is considered relative to the server root.
# Set to /dev/null if you don't want errors logged.
# If unset, defaults to /dev/stderr
#ErrorLog /var/log/boa/error_log
# Please NOTE: Sending the logs to a pipe ('|'), as shown below,
# is somewhat experimental and might fail under heavy load.
# &Usual libc implementations of printf will stall the whole
# process if the receiving end of a pipe stops reading.&
#ErrorLog &|/usr/sbin/cronolog --symlink=/var/log/boa/error_log
/var/log/boa/error-%Y%m%d.log&
# AccessLog: The location of the access log file. If this does not
# start with /, it is considered relative to the server root.
# Comment out or set to /dev/null (less effective) to disable
# Access logging.
#AccessLog /var/log/boa/access_log
# Please NOTE: Sending the logs to a pipe ('|'), as shown below,
# is somewhat experimental and might fail under heavy load.
# &Usual libc implementations of printf will stall the whole
# process if the receiving end of a pipe stops reading.&
#AccessLog&|/usr/sbin/cronolog-symlink=/var/log/boa/access_log/var/log/boa/access-%Y%m%d.l
# UseLocaltime: Logical switch. Uncomment to use localtime
# instead of UTC time
#UseLocaltime
# VerboseCGILogs: this is just a logical switch.
# It simply notes the start and stop times of cgis in the error log
# Comment out to disable.
#VerboseCGILogs
# ServerName: the name of this server that should be sent back to
# clients if different than that returned by gethostname + gethostbyname
ServerName
# VirtualHost: a logical switch.
# Comment out to disable.
# Given DocumentRoot /var/www, requests on interface 'A' or IP 'IP-A'
# become /var/www/IP-A.
# Example:
becomes /var/www/127.0.0.1
# Not used until version 0.93.17.2. This &feature& also breaks commonlog
# output rules, it prepends the interface number to each access_log line.
# You are expected to fix that problem with a postprocessing script.
#VirtualHost
# DocumentRoot: The root directory of the HTML documents.
# Comment out to disable server non user files.
DocumentRoo t /var/www
# UserDir: The name of the directory which is appended onto a user's home
# directory if a ~user request is recieved.
UserDir public_html
# DirectoryIndex: Name of the file to use as a pre-written HTML
# directory index. Please MAKE AND USE THESE FILES. On the
# fly creation of directory indexes can be _slow_.
# Comment out to always use DirectoryMaker
DirectoryIndex index.html
# DirectoryMaker: Name of program used to create a directory listing.
# Comment out to disable directory listings. If both this and
# DirectoryIndex are commented out, accessing a directory will give
# an error (though accessing files in the directory are still ok).
#DirectoryMaker /usr/lib/boa/boa_indexer
# DirectoryCache: If DirectoryIndex doesn't exist, and DirectoryMaker
# has been commented out, the the on-the-fly indexing of Boa can be used
# to generate indexes of directories. Be warned that the output is
# extremely minimal and can cause delays when slow disks are used.
# Note: The DirectoryCache must be writable by the same user/group that
# Boa runs as.
# KeepAliveMax: Number of KeepAlive requests to allow per connection
# Comment out, or set to 0 to disable keepalive processing
KeepAliveMax 1000
# KeepAliveTimeout: seconds to wait before keepalive connection times out
KeepAliveTimeout 10
# MimeTypes: This is the file that is used to generate mime type pairs
# and Content-Type fields for boa.
# Set to /dev/null if you do not want to load a mime types file.
# Do *not* comment out (better use AddType!)
MimeTypes /var/www/mime.types
# DefaultType: MIME type used if the file extension is unknown, or there
# is no file extension.
DefaultType text/html
# CGIPath: The value of the $PATH environment variable given to CGI progs.
CGIPath /bin:/usr/bin:/usr/local/bin
# SinglePostLimit: The maximum allowable number of bytes in
# a single POST. Default is normally 1MB.
# AddType: adds types without editing mime.types
# Example: AddType type extension [extension ...]
# Uncomment the next line if you want .cgi files to execute from anywhere
#AddType application/x-httpd-cgi cgi
# Redirect, Alias, and ScriptAlias all have the same semantics -- they
# match the beginning of a request and take appropriate action. Use
# Redirect for other servers, Alias for the same server, and ScriptAlias
# to enable directories for script execution.
# Redirect allows you to tell clients about documents which used to exist in
# your server's namespace, but do not anymore. This allows you to tell the
# clients where to look for the relocated document.
# Aliases: Aliases one path to another.
# Example: Alias /path1/bar /path2/foo
#Alias /doc /usr/doc
# ScriptAlias: Maps a virtual path to a directory for serving scripts
# Example: ScriptAlias /htbin/ /www/htbin/
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
ScriptAlias /index.html /var/www/index.html
注:最后两行解释一下,倒数第二行指示 CGI 脚本的存放位置,倒数第一行指示网页存放
的位置。红色部分为要修改的区域;当然上例中的设置比如目录和服务器名等可以根据自己需要修改。
第三步 NFS 方式测试
首先在 S3c2410 平台启动好的文件系统中/var 目录下使用 mkdir www 命令创建一个
www 目录。在主机上建立一个目录,mkdir /new_boa 同时在 new_boa 下建立一个 cgi-bin
脚本目录,然后拷贝刚刚编译好的可执行文件 boa 以及 boa.conf 到 new_boa 目录下,再从主
机 redhat9.0 下/etc 目录下找到 mime.types 拷贝到/new_boa 目录下。
这样一个测试环境就搭建好了,我们在 minicom 中使用挂载主机 new_boa 到/var/www 下,
mount 211.87.99.169:/new_boa /var/www
注:主机地址为 211.87.99.169(可自行修改成自己的 IP,只要主机 IP 和 S3c2410 平台
IP 处在同一个网段就可以)。
下面进行静态网页测试与脚本测试两个部分:
静态网页测试:
在主机端 new_boa 目录下 vi index.html 创建一个简单网页如下:
&head&&title& BOA TEST &/title&
&h1& BOA TEST&/h1&
进入平台 S3c2410 平台的 var/www 目录下,运行 ./boa
[01/Feb/:00 +0000] boa: server version Boa/0.94.13
[01/Feb/:00 +0000] boa: server built Dec 21 2007 at 02:03:37.
[01/Feb/:00 +0000] boa: starting server pid=37, port 80
看到上面信息表示服务器运行正常。
启动浏览器,输入 211.87.99.168 (S3c2410 平台服务器 IP)
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:64435次
排名:千里之外
原创:11篇
转载:13篇
(1)(1)(2)(1)(1)(1)(1)(9)(6)移植BOA服务器到GEC2440开发板
移植BOA服务器到GEC2440开发板
  所需软件:boa-0.94.13.tar.tar
  下载在的1号FTP服务器里,下载地址:
  FTP地址:ftp://
  用户名:
  密码:
  在 2011年\10月\Boa Web服务器在PC上移植
  下载方法见
  相关阅读: Boa Web服务器在PC上移植
  步骤:
  设置好交叉编译工具链。
  1、解压下载好的压缩包(tar xzvf boa-0.94.13.tar.tar),并进入解压后的目录(cd boa-0.94.13),再进行如下操作:
  先进入到src目录(下面操作都是在该目录下进行):
  cd src
  生成Makefile文件:
  ./configure
  修改Makefile文件:
  CC = gcc
  CPP = gcc CE
  修改为:
  CC=arm-linux-gcc
  CPP=arm-linux-gcc CE
  修改defines.h文件:
  将#define SERVER_ROOT “/etc/boa”修改为#define SERVER_ROOT “/var/www”
  该处定义的是WEB服务器的文件根目录,只要跟nf文件中的DocumentRoot一致即可。
  接下来编译boa:
  arm-linux-strip boa&&&& //去掉相关调试信息,把生成的boa减小
  在make时出现如下错误提示:
  util.c:100:1: pasting "t" and "-&" does not give a valid preprocessing token
  解决方法(参考):
  修改compat.h文件:
  #define TIMEZONE_OFFSET(foo) foo##-&tm_gmtoff
  修改成
  #define TIMEZONE_OFFSET(foo) (foo)-&tm_gmtoff
  2、在解压后的boa源码目录下有个nf文件,对它进行如下修改:
  1)、Group的修改:
  将Group nogroup修改为Group 0
  由于在根文件系统中的/etc/group文件中没有nogroup组,所以设成0。在/etc/passwd中有nobody用户,所以User nobody不用修改。
  2)、将相关日志文件存放位置项注释掉,不保存日志文件:
  ErrorLog /var/log/boa/error_log
  AccessLog /var/log/boa/access_log
  3)、ServerName的设置:
  将#ServerName .here前面的#号去掉,该项默认为未打开,执行Boa会异常退出,提示“gethostbyname::No such file or directory”,所以必须打开。
  4)、将DirectoryMaker /usr/lib/boa/boa_indexer注释掉。
  5)、将MimeTypes /etc/mime.types修改为:MimeTypes /var/www/mime.types。
  6)、将DefaultType text/plain修改为:DefaultType text/html。
  7)、将Alias /doc /usr/doc注释掉。
  8)、SccriptAlias的设置:
  将ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/修改为:
  ScriptAlias /cgi-bin/ /var/www/cgi-bin/
  3、接下来的操作在开发板的根文件系统下进行操作:
  在/var目录下创建www目录:
  mkdir /var/www
  进入到创建好的目录下,进行下面操作:
  创建cgi-bin目录:mkdir cgi-bin
  把生成的boa和配置好的nf文件及主机下的/etc/mime.types文件都复制到板上的/var/www目录下,并在该目录下创建一文件l,文件内容如下:
  &html&
  &head&
  &title&BOA TEST&/title&
  &/head&
  &body&
  &h1&BOA TEST&/h1&
  &/body&
  &/html&
  进入到板上的/var/www目录下,执行./boa,可以看到如下启动信息:
  [root@GCX2440 www]# ./boa
  [root@GCX2440 www]# [28/Mar/:11 +0000] boa: server version Boa/0.94.13
  [28/Mar/:11 +0000] boa: server built Mar 28 2010 at 10:06:35.
  [28/Mar/:11 +0000] boa: starting server pid=1007, port 80
  在主机上启动浏览器,输入URL为,访问板上的BOA服务,效果如下:
  此时板上串口输出如下信息:
  [28/Mar/:16 +0000] request from 192.168.0.1 "GET /favicon.ico HTTP/1.1" ("/var/www/favicon.ico"): document open: No such file or directory
  是因为没有该图标文件,不过不影响。
  测试完静态页面后,接下来测试CGI脚本文件:
  在主机上创建一文件helloworld.c,文件内容如下:
  #include&stdio.h&
  int main()
  printf("Content-type:text/html\n\n");
  printf("&html&\n");
  printf("&head&&title&BOA TEST&/title&&/head&\n");
  printf("&body&\n");
  printf("&h1&BOA CGI TEST&/h1&\n");
  printf("&/body&\n");
  printf("&/html&\n");
  exit(0);
  然后用交叉编译工具链编译,将得到的helloworld文件复制到板上的/var/www/cgi-bin目录下:
  编译:arm-linux-gcc Co helloworld helloworld.c
  在浏览器输入,可以看到如下效果:
  至此,BOA服务器移植成功!
H3C认证Java认证Oracle认证
基础英语软考英语项目管理英语职场英语
.NETPowerBuilderWeb开发游戏开发Perl
二级模拟试题一级模拟试题一级考试经验四级考试资料
港口与航道工程建设工程法规及相关知识建设工程经济考试大纲矿业工程市政公用工程通信与广电工程
操作系统汇编语言计算机系统结构人工智能数据库系统微机与接口
软件测试软件外包系统分析与建模敏捷开发
法律法规历年试题软考英语网络管理员系统架构设计师信息系统监理师
高级通信工程师考试大纲设备环境综合能力
路由技术网络存储无线网络网络设备
CPMP考试prince2认证项目范围管理项目配置管理项目管理案例项目经理项目干系人管理
Powerpoint教程WPS教程
电子政务客户关系管理首席信息官办公自动化大数据
职称考试题目
就业指导签约违约职业测评
招生信息考研政治
网络安全安全设置工具使用手机安全
3DMax教程Flash教程CorelDraw教程Director教程
Dreamwaver教程HTML教程网站策划网站运营Frontpage教程
生物识别传感器物联网传输层物联网前沿技术物联网案例分析
互联网电信IT业界IT生活
Java核心技术J2ME教程
Linux系统管理Linux编程Linux安全AIX教程
Windows系统管理Windows教程Windows网络管理Windows故障
组织运营财务资本
视频播放文件压缩杀毒软件输入法微博
数据库开发Sybase数据库Informix数据库
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&The page is temporarily unavailable
nginx error!
The page you are looking for is temporarily unavailable.
Please try again later.
Website Administrator
Something has triggered an error on your
This is the default error page for
nginx that is distributed with
It is located
/usr/share/nginx/html/50x.html
You should customize this error page for your own
site or edit the error_page directive in
the nginx configuration file
/etc/nginx/nginx.conf.

我要回帖

更多关于 嵌入式boa移植 的文章

 

随机推荐