免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1059 | 回复: 0
打印 上一主题 下一主题

移植thttpd Web服务器到ARM-Linux系统 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-02-29 09:05 |只看该作者 |倒序浏览
移植thttpd Web服务器到ARM-Linux系统
本次移植的参考资料:
1、 《Linux系统移植》:一个经典的Linux移植文档,(有的网站称之为《Linux系统全线移植文档》等等),共有95页的PDF文档,内容十分详细,里面有thttp的移植记录,值得参考。
2、 《构建嵌入式Linux系统》的第十章 设置网络服务 中的thttp移植部分。

1 载并解压
下载地址为:
http://www.acme.com/software/thttpd/
我下载的是最新的2.25b
解压:
[tekkamanninja@Tekkaman-Ninja source]$ tar -xvzf thttpd-2.25b.tar.gz


2 交叉thttpd
[tekkamanninja@Tekkaman-Ninja source]$ cd thttpd-2.25b
[tekkamanninja@Tekkaman-Ninja thttpd-2.25b]$ CC=/home/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-gcc ./configure –host=arm-9tdmi-linux-gnu
[tekkamanninja@Tekkaman-Ninja thttpd-2.25b]$ make
  
3 安装与配置
3.1 拷贝thttpd二进制可执行文件到根文件系统/usr/sbin/目录中
[tekkamanninja@Tekkaman-Ninja thttpd-2.25b]$ cp thttpd /home/tekkamanninja/working/nfs/rootfs/usr/sbin/
3.2 拷贝thttpd配置文件
[tekkamanninja@Tekkaman-Ninja thttpd-2.25b]$ cp contrib/redhat-rpm/thttpd.conf /home/tekkamanninja/working/nfs/rootfs/etc/
3.3在开发板上为thttpd创建一个独立的用户:httpd,并用此用户创建httpd服务的根目录html
[root@/root]#adduser httpd
Changing password for httpd
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[786]: password for `httpd' changed by user `root'
Password changed.
[root@/root]#exit
process '-/bin/login' (pid 787) exited. Scheduling it for restart.
starting pid 790, tty '': '/bin/login'
192.168.1.2 login: httpd
Password:
Processing /etc/profile...
Set search library path in /etc/profile
Set user path in /etc/profile
Set PS1 in /etc/profile
Done
[httpd@/home/httpd]$mkdir html
3.4 拷贝测试网页到httpd服务的根目(可选,测试之用):
[tekkamanninja@Tekkaman-Ninja thttpd-2.25b]$ cp index.html /home/tekkamanninja/working/nfs/rootfs/home/httpd/html/
我是动态编译所以查看一下需要的动态库
[tekkamanninja@Tekkaman-Ninja thttpd-2.25b]$ /home/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-readelf -d thttpd
Dynamic section at offset 0x12014 contains 21 entries:
  Tag Type Name/Value
0x00000001 (NEEDED) Shared library: [libcrypt.so.1]
0x00000001 (NEEDED) Shared library: [libc.so.6]
0x0000000c (INIT) 0x9548
0x0000000d (FINI) 0x16564
0x00000004 (HASH) 0x8128
0x00000005 (STRTAB) 0x8c14
0x00000006 (SYMTAB) 0x8494
0x0000000a (STRSZ) 1066 (bytes)
0x0000000b (SYMENT) 16 (bytes)
0x00000015 (DEBUG) 0x0
0x00000003 (PLTGOT) 0x220e4
0x00000002 (PLTRELSZ) 872 (bytes)
0x00000014 (PLTREL) REL
0x00000017 (JMPREL) 0x91e0
0x00000011 (REL) 0x91a0
0x00000012 (RELSZ) 64 (bytes)
0x00000013 (RELENT) 8 (bytes)
0x6ffffffe (VERNEED) 0x9130
0x6fffffff (VERNEEDNUM) 2
0x6ffffff0 (VERSYM) 0x903e
0x00000000 (NULL) 0x0
虽然这里只列出了需要libcrypt 和 libc 这两个动态库,但是想要运行thttpd还需要libnss_files 动态库,具体原因请看:
http://www.jollen.org/blog/2006/10/library_dependency_1.html

[tekkamanninja@Tekkaman-Ninja thttpd-2.25b]$ cp -d /home/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/libnss_files* /home/tekkamanninja/working/nfs/rootfs/lib/
你可以在启动文件里增加thttpd的启动命令:thttpd -C /etc/thttpd.conf
注意只有root有启动权限!
4、增加对CGI的支持
默认配置下,thttpd不可以运行GCI(特别是动态编译的CGI程序)要想使用CGI支持功能,必须更改thttpd.conf的配置:
# This section overrides defaults
dir=/home/httpd/html
#chroot
#屏蔽chroot是为了运行动态编译的CGI
user=httpd# default = nobody
logfile=/var/log/thttpd.log
pidfile=/var/run/thttpd.pid
# This section _documents_ defaults in effect
port=81
#port参数用于更改端口号(可不改,若还运行了别的WEB服务器,则需用不同端口)
# nosymlink# default = !chroot
#symlinks
# novhost
cgipat=/cgi-bin/*
#声明CGI程序的目录,是以dir为根目录的路径
# nothrottles
# host=0.0.0.0
# charset=iso-8859-1
移植完成,可以测试了(只需在WEB浏览器中键入开发板的IP地址即可)。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/34474/showart_486566.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP