嵌入式转linux服务器,嵌入式linux下web服务器搭建

一、移植编译生成boa二进制文件

Boa是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右。作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。Boa的设计目标是速度和安全。

解压到特定目录,本人使用的是/opt目录,使用命令:

#tar zxvf boa-0.94.13.tar.gz –C /opt

配置boa:

切换到目录# cd /opt/boa-0.94.13/src运行./configure

会在boa-0.94.13/src目录下生成Makefile文件,修改该文件,主要是修改编译器的选择,从而适合ARM。修改31、32行如下(具体要看你的交叉编译器在哪个目录下面):

CC = /opt/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin/arm-linux-gcc

CPP = /opt/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin/arm-linux-g++ -E

接着修改src/boa.c文件:

注释掉225到227行的内容:

// if (setuid(0) != -1) {

// DIE (“icky Linux kernel bug!”);

// }

修改src/compat.h文件如下:

#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff

最后编译并且优化:

在src目录下,直接输入make命令即可完成编译,输入ls –l boa,可到如下图所示结果:

28791381_13656932495zT9.jpg

表明成功生成了二进制文件

接下来为二进制文件瘦身!!输入arm-linux-strip boa即可,运行结果如下图所示。

28791381_1365693278DYu5.jpg

相比上一个,明显小了很多了。

二、移植cgic

#tar zxvf cigc205.tar.gz –C /opt

切换到cgic目录下,并修改Makefile文件,修改如下所示:

在开始出修改

CC=/opt/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin/arm-linux-gcc

AR=/opt/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin/arm-linux-ar

RANLIB=/opt/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin/arm-linux-ranlib

此外还需修改22行和25行如下:

$(CC) $(CFLAGS) cgictest.o –o cgictest.cgi ${LIBS}

$(CC) $(CFLAGS) capture.o –o capture ${LIBS}

输入make命令进行编译。编译生成capture的可执行文件和次使用的cgictest.cgi文件

优化输入arm-linux-strip capture即可。

三、配置WEB服务器

3.1在文件系统中配置boa

可以直接打开/opt/boa-0.94.13/boa.conf进行修改,主要修改一下几个参数的配置。

Port 80使用默认的即可

Listen 192.168.1.6这个使用自己ARM板子的IP地址

User root板子使用者

Group root作为哪个用户运行,即它拥有该用户组的权限,一般是root需要在/etc/group文件中有root组

ErrorLog /dev/console错误日志文件。如果没有以/XXX开始,则表示从服务器的根路径开始。如果不需要错误日志,则用/dev/null。系统启动后看到的boa的打印信息就是由/dev/console得到

ServerName自己写GentleHacker

DocumentRoot /web这个是存放html文档的主目录,非常重要,浏览器访问的时候会访问其中内容

DiectoryIndex index.html   html目录索引的文件名

CGIPath /bin:/usr/bin:/usr/local/bin提供CGI程序的PATH环境变量值

ScriptAlias /cgi-bin /web/cgi-bin/非常重要,指明CGI脚本的虚拟路径对应的实际路径,笔者是在根文件系统下创建web目录的,所以这么设置。

在配置工作做好以后,将两个文件拷贝到已有的ramdisk文件中,具体操作如下。

1.首先请参考我转载的博文ramdisk介绍与制作,笔者将ramdisk文件系统挂在在/mnt/loop下。

2.将/opt/boa-0.94.13/src/boa拷贝到文件系统ramdisk下的sbin目录下,从而为文件系统提供新的命令

3.将配置文件/opt/boa-0.94.13/boa.conf拷贝到etc/boa下

完成上面几步之后则完成了boa服务器到ARM开发板文件系统的移植。

3.2配置CGIC库

首先在文件系统ramdisk的根目录下创建目录web。

进入目录# cd web

接着执行命令 # mkdir cgi-bin

将在第二步骤中生成好的capture和cgictest.cgi拷贝到目录cgi-bin下,从而完成了cgic的移植。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值