thttpd服务器移植到ARM Linux教程

应用移植 5092浏览 0评论

thttpd移植thttpd 是一个小型的、简单的、可移植的、快速以及安全的 HTTP web服务器。thttpd 非常简单,仅仅提供了HTTP/1.1 和简单的 CGI 支持。在thttpd官方网站有一个与其他web server(如Apache、Zeus、Boa等)的对比表和Benchmark,可以参考:http://www.acme.com/software/thttpd/benchmarks.html。此外,thttpd 也类似于lighttpd,对于并发请求不使用fork()来派生子进程处理,而是采用多路复用(Multiplex)技术来实现。因此效能很好。
Thttpd支持多种平台,如FreeBSD, SunOS, Solaris, BSD, Linux, OSF等。对于小型web server而言,速度快似乎是一个代名词,通过官方站提供的Benchmark,可以这样认为:thttpd至少和主流的web server一样快,在高负载下更快,因为其资源占用小的缘故。
Thttpd还有一个较为引人注目的特点:基于URL的文件流量限制,这对于下载的流量控制而言是非常方便的。象Apache就必须使用插件实现,效率较 thttpd 低。

1 下载

下载最新版本源码包,下载地址:http://www.acme.com/software/thttpd/,本文以 thttpd-2.26.tar.gz 版本为例,点击如下链接下载。

thttpd下载

2 解压

$ mkdir ~/thttpd
$ cp thttpd-2.26.tar.gz ~/thttpd
$ cd ~/thttpd
$ tar xzf thttpd-2.26.tar.gz
$ cd thttpd-2.26/

命令中的“~”表示当前用户目录,比如在 Linux 主机上工作的用户是:veryarm,那么命令中的“~”就代表路径:/home/veryarm/目录。

3 配置

$ export PATH=$PATH:/usr/local/arm-2010q1/bin  # 交叉编译工具路径加入系统环境变量!
$ ./configure
$ vi Makefile

打开Makefile文件后,修改 CC 变量的值,修改后如下:

CC = arm-none-linux-gnueabi-gcc

其中,

  • CC: 指定交叉编译工具,一般为 arm-none-linux-gnueabi-gcc、arm-linux-gnueabihf-gcc、arm-linux-gcc等,具体要和目标板用的交叉编译工具对应。

同样的方法,将 cgi-src 和 extras 目录下 Makefile 中的 CC 的值改为目标板的交叉编译器,如本例的 arm-none-linux-gnueabi-gcc。

4 编译

$ make                  # 编译

make 后,当前目录下会生成文件:thttpd ,同样我们还需要用到 contrib/redhat-rpm/thttpd.conf 文件。

 5 复制文件

将生成的 thttpd 复制到目标板 /usr/sbin 目录,thttpd.conf 复制到目标板 /etc 目录,并添加 thttpd 为可执行:

$ cp thttpd /usr/sbin                       # 复制执行文件到目标板
$ cp thttpd.conf /etc/                      # 复制配置文件到目标板
$ chmod +x /usr/sbin/thttpd                 # 添加可执行权限

6 配置

使用 vi 打开 thttpd.conf 文件,并进行配置,如下配置我们仅将“user=httpd”改为“user=root”:

# This section overrides defaults
dir=/home/httpd/html
chroot
user=root
# default = nobody
logfile=/var/log/thttpd.log
pidfile=/var/run/thttpd.pid
# This section _documents_ defaults in effect
# port=80
# nosymlink# default = !chroot
# novhost
# nocgipat
# nothrottles
# host=0.0.0.0
# charset=iso-8859-1

再在目标板上新建 /home/httpd 和 /home/httpd/html 两个目录,并修改权限为755:

$ mkdir /home/httpd /home/httpd/html
$ chmod 755 /home/httpd
$ chmod 755 /home/httpd/html

切换到 /home/httpd/html 目录下,并新建一个 index.html 文件。

$ cd /home/httpd/html
$ vi index.html

内容为:

<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>VeryARM Home Page</title>
</head>
<body>
    <h1>Hello VeryARM Visitor!</h1>
    <p>We are coming from one world, welcome here!</p>
</body>
</html>

保存退出,然后将 index.html权限改为 644:

$ chmod 644 index.html

7 开启thttpd

配置完之后,在目标板上打开 thttpd,命令:

thttpd -D -C /etc/thttpd.conf &

注意,后面还有一个 &。如果要让 thttpd 开机启动,可以将该命令添加到 /etc/profile 或者 rc.local 文件最后。

8 访问服务器

在浏览器上输入目标板的 IP 地址,就可以看到内容了:

thttpd移植成功

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址