51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > ARM/CPLD/综合 > 详细内容
移植shttpd Web服务器到ARM-Linux系统
发布时间:2009/7/23  阅读次数:571  字体大小: 【】 【】【
一、下载并解压
下载的官方主页:http://shttpd.sourceforge.net/
我下的是目前最新的shttpd-1.39.tar.gz
解压:
[tekkamanninja@Tekkaman-Ninja source]$ tar zxvf shttpd-1.39.tar.gz

二、配置和交叉编译
[tekkamanninja@Tekkaman-Ninja source]$ cd shttpd-1.39    
[tekkamanninja@Tekkaman-Ninja shttpd-1.39]$ cd src/
[tekkamanninja@Tekkaman-Ninja src]$ kwrite Makefile

只需在前面加上交叉编译器路径就好:
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
AR = /home/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-ar
CFLAGS =    -DNO_SSL

加上CFLAGS =    -DNO_SSL,是因为如果编译SSL支持,会因符号未定义而无法通过。所以我去除了SSL 支持。

交叉编译:
[tekkamanninja@Tekkaman-Ninja src]$ make unix

开看程序需要那些动态库:
[tekkamanninja@Tekkaman-Ninja src]$ ~/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-readelf -d shttpd
Dynamic section at offset 0x12cc8 contains 20 entries:
    Tag              Type                                         Name/Value
0x00000001 (NEEDED)                                   Shared library: [libc.so.6]
0x0000000c (INIT)                                       0x9180
0x0000000d (FINI)                                       0x18708
0x00000004 (HASH)                                       0x8128
0x00000005 (STRTAB)                                   0x8a5c
0x00000006 (SYMTAB)                                   0x843c
0x0000000a (STRSZ)                                    807 (bytes)
0x0000000b (SYMENT)                                   16 (bytes)
0x00000015 (DEBUG)                                    0x0
0x00000003 (PLTGOT)                                   0x22d90
0x00000002 (PLTRELSZ)                               704 (bytes)
0x00000014 (PLTREL)                                   REL
0x00000017 (JMPREL)                                   0x8ec0
0x00000011 (REL)                                        0x8e88
0x00000012 (RELSZ)                                    56 (bytes)
0x00000013 (RELENT)                                   8 (bytes)
0x6ffffffe (VERNEED)                                  0x8e48
0x6fffffff (VERNEEDNUM)                             1
0x6ffffff0 (VERSYM)                                   0x8d84
0x00000000 (NULL)                                       0x0

将编译好的程序放入开发板的文件系统下:
[tekkamanninja@Tekkaman-Ninja src]$ cp shttpd /home/tekkamanninja/working/nfs/rootfs/sbin/

三、运行shttpd
因为shttpd 没有配置文件,所以配置是由启动参数加的,比如我在开发板中操作如下:
[root@~]#shttpd -root /var/www -ports 80    &
意思是Web 根目录为/var/www 用80端口提供服务。

还有别的参数如下:
[root@~]#shttpd --help
SHTTPD version 1.39 (c) Sergey Lyubka
usage: shttpd [options] [config_file]
    -A
    -root               Web root directory (default: .)
    -index_files    Index files (default: index.html,index.htm,index.php,index.cgi)
    -ports              Listening ports (default: 80)
    -dir_list         Directory listing (default: 1)
    -cfg_uri          Config uri
    -protect          URI to htpasswd mapping
    -cgi_ext          CGI extensions (default: cgi,pl,php)
    -cgi_interp     CGI interpreter
    -cgi_env          Additional CGI env vars
    -ssi_ext          SSI extensions (default: shtml,shtm)
    -auth_realm     Authentication domain name (default: mydomain.com)
    -auth_gpass     Global passwords file
    -auth_PUT         PUT,DELETE auth file
    -access_log     Access log file
    -error_log      Error log file
    -mime_types     Additional mime types list
    -aliases          Path=URI mappings
    -acl                Allow/deny IP addresses/subnets
    -inetd              Inetd mode (default: 0)
    -uid                Run as user

这里说明一下 -cgi_ext    :shttpd没有CGI 目录的概念,它是通过认文件扩展名来识别的。要运行CGI 程序,默认情况下就要在编译好的程序后面加上 “.cgi””pl””php”等后缀。而 -cgi_ext    是你可以自定义其后缀。

四、开发板测试

1)静态网页测试
在开发板的 /var/www(由-root指定的根目录)放入测试网页:index.html
在HOST的浏览器中输入开发板地址,测试通过!

2)CGI测试

在 /var/www (由-root指定的根目录)放入测试 CGI 程序:helloworldCGI.cgi

在流览器中输入(开发板地址)192.168.1.2/helloworldCGI.cgi ,测试通过!
我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号