php移植arm服务器,移植shttpd Web服务器到ARM-Linux系统

移植shttpd Web服务器到ARM-Linux系统

一、下载并解压下载的官方主页:

我下的是目前最新的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  是你可以自定义其后缀。

四、开发板测试

静态网页测试

在开发板的 /var/www(由-root指定的根目录)放入测试网页:index.html

在HOST的浏览器中输入开发板地址,测试通过!

CGI测试

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

在流览器中输入(开发板地址)192.168.1.2/helloworldCGI.cgi ,测试通过!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值