本次移植的主要参考资料:

1、 《嵌入式Web服务器移植 》 是网上一份Boa移植文档,比较全面。本文档就是基本参照它来写的。基本上上可以说是这篇文章的修改版,增加了我的移植经验。由于这篇文章被转载得到处都是,我实在无法找到出处。在这里衷心的感谢文章作者!!我所做的修改和遇到的问题将在文章最后贴出来。

2、 《构建嵌入式Linux系统》 的第十章 设置网络服务 中的Boa移植部分。

一、Boa程序的移植

1、下载Boa源码

下载地址: http://www.boa.org/

目前最新发行版本: 0.94.13   (几年没更新版本了)

下载 boa-0.94.13.tar.gz,

注意:若从boa上下载的是boa-0.94.13.tar.tar,解压方式一样

解压:

[ tekkamanninja@Tekkaman- Ninja source] $ tar xzf boa- 0. 94. 13. tar. gz

2、生成Makefile文件

进入boa- 0. 94. 13, 直接运行src/configure文件

[ tekkamanninja@Tekkaman- Ninja src] $./configure

3、修改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

4、交叉编译

[ tekkamanninja@Tekkaman- Ninja src] $ make

5、去除调试信息,减小体积。(可选)

[ tekkamanninja@Tekkaman- Ninja src] $ / home/ tekkamanninja/ working/ source/ 2. 95. 3/ bin/ arm- linux- strip boa

6、将编译好的程序放入根文件系统的/bin目录下。

[ tekkamanninja@Tekkaman- Ninja src] $ cp boa / home/ tekkamanninja/ working/nfs/rootfs / bin/

二、配置Boa

Boa需要在/etc目录下建立一个boa目录,里面放入Boa的主要配置文件boa.conf。 在Boa源码目录下已有一个示例boa.conf ,可以在其基础上进行修改。

[ tekkamanninja@Tekkaman- Ninja src] $ cd . . / . .

[ tekkamanninja@Tekkaman- Ninja source] $ cd . . / nfs/ rootfs/ etc/

[ tekkamanninja@Tekkaman- Ninja etc] $ mkdir boa

[ tekkamanninja@Tekkaman- Ninja etc] $ chmod 777 boa/

[ tekkamanninja@Tekkaman- Ninja etc] $ cd boa

[ tekkamanninja@Tekkaman- Ninja boa] $ kwrite boa. conf

1、Group的修改

修改 Group nogroup

Group user (开发板上有的组)

修改 User nobody

User boa (user组中的一个成员)

根据你的开发板的情况设定。一定要存在的组和用户。

以下是我在开发板上的操作:

[ root@~ ] # adduser - g user boa

Changing password for boa

Enter the new password ( minimum of 5, maximum of 8 characters)

Please use a combination of upper and lower case letters and numbers.

Enter new password:

Bad password: too short .

Warning: weak password ( continuing) .

Re- enter new password:

passwd[ 820] : password for `boa' changed by user `root'

Password changed.

[ root@~ ] #

2、ScriptAlias的修改

修改 ScriptAlias /cgi-bin/  /usr/lib/cgi-bin/

为 ScriptAlias /cgi-bin/  /var/www/cgi-bin/

这是在设置CGI的目录,你也可以设置成别的目录。比如用户文件夹下的某个目录。

3、ServerName的设置

注意:该项默认为未打开,执行Boa会异常退出,提示“gethostbyname::No such file or directory”,所以必须打开。其它默认设置即可。你也可以设置为你自己想要的名字。比如我设置为: ServerName tekkaman2440

此外,还需要:

将mime.types 文件复制/etc 目录下,通常可以从linux主机的 /etc目录下直接复制即可。

(以下配置和boa.conf 的配置有关)

创建日志文件所在目录/var/log/boa

创建HTML文档的主目录/var/www

创建CGI脚本所在录 /var/www/cgi-bin

[ tekkamanninja@Tekkaman- Ninja log ] $ mkdir - m 777 boa

[ tekkamanninja@Tekkaman- Ninja log ] $ cd . .

[ tekkamanninja@Tekkaman- Ninja var] $ mkdir - m 777 www

[ tekkamanninja@Tekkaman- Ninja var] $ mkdir - m 777 www/ cgi- bin

[ tekkamanninja@Tekkaman- Ninja var] $ cd . .

[ tekkamanninja@Tekkaman- Ninja rootfs] $ cp / etc/ mime. types etc/

三、运行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 - unable to bind : Address already in use

或是用户设置错误等等,都可以查到。

四、功能测试

静态网页测试

将静态网页存入根文件系统的/var/www 目录下(可以将主机 /usr/share/doc/HTML/目录下的index.html、homepage.css和img、stylesheet-images目录复制到/var/www目录下)

我参考《嵌入式Web服务器移植 》 的做法如下:

在根文件系统的/var 目录下

[ tekkamanninja@Tekkaman- Ninja var] $ cp / usr/ share/ doc/ HTML/ index. html www/

[ tekkamanninja@Tekkaman- Ninja var] $ cp - r / usr/ share/ doc/ HTML/ img www/

[ tekkamanninja@Tekkaman- Ninja var] $ cp / usr/ share/ doc/ HTML/ homepage. css www/

[ tekkamanninja@Tekkaman- Ninja var] $ cp - r / usr/ share/ doc/ HTML/ stylesheet- images www/

直接在浏览器中输入开发板的IP地址(比如我的是http://192.168.1.2 ) ,出现fedora的欢迎网页。静态HTML调试成功。

CGI功能测试

1、编写HelloworldCGI.c程序

[tekkamanninja@Tekkaman-Ninja source]$ vi helloworldCGI.c

(主程序的程序开头一定要用Tab,而不是空格,不然编译可能不通过)

# include < stdio. h>

# include < stdlib. h>

int main( void )

{

printf ( "Content-type: text/html/n/n" ) ;

printf ( "/n" ) ;

printf ( "

CGI Output/n" ) ;

printf ( "

/n" ) ;

printf ( "

Hello,world.

/n" ) ;

printf ( "

/n" ) ;

printf ( "/n" ) ;

exit ( 0) ;

}

2.交叉编译生成CGI程序

[ tekkamanninja@Tekkaman- Ninja source] $ / home/ tekkamanninja/ working/ gcc4. 1. 1/ gcc- 4. 1. 1- glibc- 2. 3. 2/ arm- 9tdmi- linux- gnu/ bin/ arm- 9tdmi- linux- gnu- gcc - o helloworldCGI helloworldCGI. c

将helloworldCGI 拷贝至根文件系统的/var/www/cgi-bin/下

[ tekkamanninja@Tekkaman- Ninja source] $ cp helloworldCGI . . / nfs/ rootfs/ var/ www/ cgi- bin/

3.测试

网页出现 Hello,world. 调试成功!

我遇到的问题:

1、Could not chdir to "/etc/boa": aborting

因为板子上 /etc 不可写 ,所以就改文件了

修改boa-0.94.13/src/defines.h  第30行:将/etc/boa 改为你自己的目录 我的是 /mnt/yaffs/boa。

2、log.c:73 - unable to dup2 the error log: Bad file

修改boa-0.94.13/src/log.c 第72-74行:将 该if 语句注释掉

3、boa.c:226 - icky Linux kernel bug!: No such file o...

修改boa-0.94.13/src/boa.c 第225-227行:将该 if 语句注释掉

这样编译、修改、编译了n次之后终于搞定!

另外:

关于boa.conf 文件的问题直接贴出我的:

Port 80

User root

Group root

ErrorLog /var/log/boa/error_log

ServerName 10.10.19.123

DocumentRoot /mnt/yaffs/boa/www

UserDir public_html

DirectoryIndex index.html

DirectoryMaker /mnt/yaffs/boa/boa_indexer

KeepAliveMax 1000

KeepAliveTimeout 10

MimeTypes /mnt/yaffs/boa/mime.types

DefaultType text/plain

CGIPath /bin:/usr/bin:/usr/local/bin

Alias /doc /usr/doc

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

由于板子重启之后,boa.conf的内容开头就变了,boa无法运行, 我在开头和末尾都加了很多行无用的注释,这个问题就解决了!

boa linux arm修改网卡,移植Boa Web服务器到ARM-Linux系统相关推荐

  1. boa linux arm修改网卡,Boa服务器在ARM+Linux上的移植

    Boa服务器在ARM+Linux上的移植 一.Boa服务器介绍 Boa是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右. 作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会 ...

  2. arm linux imx6u移植goahead web服务器

    arm linux imx6u移植goahead web服务器 源码下载 源码结构 源码移植 源码下载 1.源码版本goahead2.5 2. 百度云下载链接https://pan.baidu.com ...

  3. vmware workstation克隆linux后修改网卡为eth0方法

    原文出自http://www.2cto.com/os/201306/222812.html vmware workstation克隆linux后修改网卡为eth0方法 场景:  vmware work ...

  4. Linux Ubuntu 修改网卡名字

    Linux Ubuntu 修改网卡名字 一.写在前面 这篇文章主要介绍了,Linux Ubuntu 系统下通过以下两种方式修改网卡的名字,这里根据自己的实际操作验证,从中学习记录,方便后续查询. 邮箱 ...

  5. 【CentOS Linux 7】实验6【web服务器搭建与管理】

    Linux系统及应用---调研报告 [Linux CentOS 7]实验1[VMware安装.新建虚拟机:63个基础命令运行结果图] [Linux CentOS 7]实验2[Shell编程及应用] [ ...

  6. 虚拟机web服务器配置ppt,在Linux虚拟机下配置apache构建web服务器.doc

    在Linux虚拟机下配置apache构建web服务器.doc 上传人:清**** 文档编号:55209606 上传时间:2020-03-08 格式:DOC 页数:2 大小:32.50KB 下载提示(请 ...

  7. linux主流的web服务器,适合Web服务器的非主流Linux发行版

    适合Web服务器的非主流Linux发行版 在众多的Linux发行版中有很多是大家不熟悉,这些偏离主流的发行版有很多都可以应用在Web服务器上面.下面我们就来看看相关的非主流Linux发行版.在这里我们 ...

  8. 安装web服务器组件,在Windows2003系统中如何安装Web服务器组件?

    当用户使用dreamweaver软件时会使用到IIS服务器,而Web服务器组件是WindowsServer2003系统中IIS6.0的服务器组件之一,默认情况下并没有被安装,用户需要手动安装Web服务 ...

  9. boa linux arm修改网卡,嵌入式linux架设boa webserver

    Boa 是一套小型的网页服务器,很适合应用在Embedded System上,并且内建就可以直接支援以C写的CGI网页,这篇是移植Boa到ARM9 S3C2410平台的过程,Linux版本为2.6.1 ...

最新文章

  1. 使用Windows7上的VS Code打开远程机Ubuntu上的文件操作步骤
  2. LocalDateTime - Java处理日期和时间
  3. C# 温故知新 基础篇(1) C#概述
  4. python3 sleep 并发_python异步编程之asyncio(百万并发)
  5. VS2005无法启动解决方法(转)
  6. 洪水同频率放大的方法_我们应该怎么选择放大器配件?
  7. 数据的存储特殊矩阵压缩存储【数据结构F】
  8. eclipse 64位_Eclipse安装教程
  9. 轮播图实现html,html、css、js实现轮播图
  10. HDU 4746 Mophues(莫比乌斯反演)题解
  11. 最新版校园招聘进大厂系列----------(5)百度篇 -----未完待续
  12. JAVAFX输入法的实现
  13. 元转万元单位换算_度数单位换算(元换算成万元换算器)
  14. github的verified标签是什么
  15. Layim 聊天功能
  16. 外链式样式表_WEB前端 CSS样式表
  17. Qtum量子链发布QIP-19支持隐私资产技术提案
  18. Unity Super TileMap Editor使用帮助翻译
  19. 精心挑选12款优秀 jQuery 手风琴效果插件和教程
  20. 车载滤波器组件焊锡开裂失效分析

热门文章

  1. DCHP和静态IP:哪个更好?
  2. centos 7(最小安装)使用yum下载安装报错 loadcd plugins:fastcstmirros
  3. 索爱手机android系统,索爱正式发布Android系统Walkman音乐手机
  4. 几种比较有效的口才锻炼方法
  5. 怎么在财经网上做引流?财经引流的方法有哪些?
  6. SIM800C的二次开发(EAT开发)
  7. 用Python爬取最新股票数据含完整源代码
  8. 在校外使用校园网服务
  9. 【汇正财经】有色:全球钼价轮番拉涨,小市场或有大行情
  10. 微信公众号 扫码自动回复消息