移植多款轻量级 Web服务器到ARM-Linux系统

网络服务对于嵌入式Linux来说,已经是基本的内容了。对于简单的WEB服务,可以移植现成的开源软件。
   现在使用于小型系统的轻量级WebServer主要有:lighttpd、thttpd、shttpd和boa等等。
   早在07年5月份的时候,由于毕业设计的需要,我就移植过了Boa服务器。但是并未写出记录。趁这次系统整体移植的机会,我重新移植了Boa服务器,并写出这份记录,以备后用。

   之后看到《构建嵌入式Linux系统》中对thttpd的介绍后我移植了thttpd。thttpd是一個非常小巧的輕量級web server,非常簡單,僅僅提供了HTTP/1.1和簡單的CGI支持。
   在移植了thttpd WEB 服务器时,我看到了《lighttpd,thttpd,shttpd – 轻量级WebServer介绍》这篇文章。我想将lighttpd和shttpd一起移植到ARM-Linux系统上。

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

移植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地址即可)。

 


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

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

本次移植的主要参考资料:
 
1、 《嵌入式Web服务器移植 》是网上一份Boa移植文档,比较全面。本文档就是基本参照它来写的。基本上上可以说是这篇文章的修改版,增加了我的移植经验。由于这篇文章被转载得到处都是,我实在无法找到出处。在这里衷心的感谢文章作者!!
 
2、 《构建嵌入式Linux系统》的第十章 设置网络服务 中的Boa移植部分。

一、Boa程序的移植

1、下载Boa源码
    下载地址:
http://www.boa.org/
    目前最新发行版本: 0.94.13   (几年没更新版本了)
    下载 boa-0.94.13.tar.gz,

注意:若从boa上下载的是boa-0.94.13.tar.tar,解压方式一样
    解压:

[tekkamanninja@Tekkaman-Ninja source]$tar xzf boa-0.94.13.tar.gz

2、生成Makefile文件
   进入boa-0.94.13,直接运行src/configure文件

[tekkamanninja@Tekkaman-Ninja src]$./configure

3、修改Makefile文件(注意:必须用cross-2.95.3, 如使用3.4.1、4.1.1等等会出错)

CC = /home/tekkamanninja/working/source/2.95.3/bin/arm-linux-gcc
CPP = /home/tekkamanninja/working/source/2.95.3/bin/arm-linux-gcc -E


4、交叉编译

[tekkamanninja@Tekkaman-Ninja src]$ make

5、去除调试信息,减小体积。(可选)

[tekkamanninja@Tekkaman-Ninja src]$ /home/tekkamanninja/working/source/2.95.3/bin/arm-linux-strip boa

6、将编译好的程序放入根文件系统的/bin目录下。

[tekkamanninja@Tekkaman-Ninja src]$ cp boa /home/tekkamanninja/working/nfs/rootfs/bin/

  

二、配置Boa

Boa需要在/etc目录下建立一个boa目录,里面放入Boa的主要配置文件boa.conf。在Boa源码目录下已有一个示例boa.conf,可以在其基础上进行修改。

[tekkamanninja@Tekkaman-Ninja src]$ cd ../..
[tekkamanninja@Tekkaman-Ninja source]$ cd ../nfs/rootfs/etc/
[tekkamanninja@Tekkaman-Ninja etc]$ mkdir boa
[tekkamanninja@Tekkaman-Ninja etc]$ chmod 777 boa/
[tekkamanninja@Tekkaman-Ninja etc]$ cd boa
[tekkamanninja@Tekkaman-Ninja boa]$ kwrite boa.conf

1、Group的修改

修改 Group nogroup
Group user(开发板上有的组)
修改 User nobody
User boa (user组中的一个成员)
根据你的开发板的情况设定。一定要存在的组和用户。
 
以下是我在开发板上的操作:

[root@~]#adduser -g user boa
Changing password for boa
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[820]: password for `boa' changed by user `root'
Password changed.
[root@~]#

2、ScriptAlias的修改

修改 ScriptAlias /cgi-bin/  /usr/lib/cgi-bin/
为 ScriptAlias /cgi-bin/  /var/www/cgi-bin/

这是在设置CGI的目录,你也可以设置成别的目录。比如用户文件夹下的某个目录。

3、ServerName的设置

修改 #ServerName www.your.org.here
为 ServerName www.your.org.here

注意:该项默认为未打开,执行Boa会异常退出,提示“gethostbyname::No such file or directory”,所以必须打开。其它默认设置即可。你也可以设置为你自己想要的名字。比如我设置为:ServerName tekkaman2440

此外,还需要:

mime.types文件复制/etc目录下,通常可以从linux主机的 /etc目录下直接复制即可。

(以下配置和boa.conf的配置有关)

创建日志文件所在目录/var/log/boa

创建HTML文档的主目录/var/www

创建CGI脚本所在录 /var/www/cgi-bin

[tekkamanninja@Tekkaman-Ninja log]$ mkdir -m 777 boa
[tekkamanninja@Tekkaman-Ninja log]$ cd ..
[tekkamanninja@Tekkaman-Ninja var]$ mkdir -m 777 www
[tekkamanninja@Tekkaman-Ninja var]$ mkdir -m 777 www/cgi-bin
[tekkamanninja@Tekkaman-Ninja var]$ cd ..
[tekkamanninja@Tekkaman-Ninja rootfs]$ cp /etc/mime.types etc/

三、运行Boa

开发板操作:

[root@~]#boa

如果发现boa没有运行,则可以在开发板的/var/log/boa/error_log文件中找原因。

比如端口已被其他程序占用:

[root@~]#cat /var/log/boa/error_log
[20/Feb/2008:21:21:57 +0000] boa.c:194 - unable to bind: Address already in use

或是用户设置错误等等,都可以查到。


四、功能测试

静态网页测试

将静态网页存入根文件系统的/var/www目录下(可以将主机 /usr/share/doc/HTML/目录下的index.html、homepage.css和img、stylesheet-images目录复制到/var/www目录下)

我参考《嵌入式Web服务器移植 》的做法如下:

在根文件系统的/var目录下

[tekkamanninja@Tekkaman-Ninja var]$ cp /usr/share/doc/HTML/index.html www/
[tekkamanninja@Tekkaman-Ninja var]$ cp -r /usr/share/doc/HTML/img www/
[tekkamanninja@Tekkaman-Ninja var]$ cp /usr/share/doc/HTML/homepage.css www/
[tekkamanninja@Tekkaman-Ninja var]$ cp -r /usr/share/doc/HTML/stylesheet-images www/

直接在浏览器中输入开发板的IP地址(比如我的是http://192.168.1.2) ,出现fedora的欢迎网页。静态HTML调试成功。

CGI功能测试

1、编写HelloworldCGI.c程序

[tekkamanninja@Tekkaman-Ninja source]$ vi helloworldCGI.c

(主程序的程序开头一定要用Tab,而不是空格,不然编译可能不通过)

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
        printf("Content-type: text/html/n/n");
        printf("<html>/n");
        printf("<head><title>CGI Output</title></head>/n");
        printf("<body>/n");
        printf("<h1>Hello,world.</h1>/n");
        printf("<body>/n");
        printf("</html>/n");
        exit(0);
}

2.交叉编译生成CGI程序

[tekkamanninja@Tekkaman-Ninja source]$ /home/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-gcc -o helloworldCGI helloworldCGI.c

将helloworldCGI 拷贝至根文件系统的/var/www/cgi-bin/下

[tekkamanninja@Tekkaman-Ninja source]$ cp helloworldCGI ../nfs/rootfs/var/www/cgi-bin/

3.测试

浏览器输入
  
http://192.168.1.2/cgi-bin/helloworldCGI

网页出现 Hello,world. 调试成功!

 


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

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

一、下载并解压
下载的官方主页: 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 <htpasswd_file> <realm> <user> <passwd>
  -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 ,测试通过!


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

移植lighttpd Web服务器到ARM-Linux系统
本次移植的主要参考资料:
《在博创UP-NETARM2410-S开发板上建立嵌入式网页服务器(lighttpd)》
网址: http://hi.baidu.com/cst05001/blog/item/82c35b099c2b9eab2eddd42a.html
感谢文章作者 :alin

一、下载并解压
下载的官方主页:www.lighttpd.net
我下的是目前最新的lighttpd-1.4.18
解压:
[tekkamanninja@Tekkaman-Ninja source]$ tar xjvf lighttpd-1.4.18.tar.bz2

二、配置和交叉编译
[tekkamanninja@Tekkaman-Ninja source]$ cd lighttpd-1.4.18
[tekkamanninja@Tekkaman-Ninja lighttpd-1.4.18]$ 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 -prefix=/lighttpd  -host=arm-9tdmi-linux-gnu --disable-FEUTARE -disable-ipv6 -disable-lfs  

这里特别注意一下-prefix=/lighttpd ,我是将软件先装在Host的根目录下的lighttpd文件夹内,然后将其复制到开发板的根文件系统的根目录下。我之所以这样做是因为这个软件在make install时会配置他私有的库文件的路径,在开发板运行时会在-prefix= 的文件加下找他的私有库文件。而我又是交叉编译给开发板,这样配置比较方便移植。

--disable-FEUTARE -disable-ipv6 -disable-lfs 可以不加。

[tekkamanninja@Tekkaman-Ninja lighttpd-1.4.18]$ make

三、程序安装
[tekkamanninja@Tekkaman-Ninja lighttpd-1.4.18]$ make install

拷贝配置文件到开发板根文件系统的etc文件夹并进行适当修改:
[tekkamanninja@Tekkaman-Ninja lighttpd-1.4.18]$ cp doc/lighttpd.conf  /home/tekkamanninja/working/nfs/rootfs/etc/

[tekkamanninja@Tekkaman-Ninja lighttpd-1.4.18]$ kwrite  /home/tekkamanninja/working/nfs/rootfs/etc/lighttpd.conf 

必需修改的地方有:

    server.document-root        = "/srv/www/htdocs/"
改为server.document-root        = "/home/lighttpd/html/"

你可以自己定义,这里就是设置web服务的根目录。

屏蔽一下语句,不然嵌入式这样的小系统下可能无法启动
#$HTTP["url"] =~ "/.pdf$" {
#  server.range-requests = "disable"
#}

开看程序需要那些动态库
[tekkamanninja@Tekkaman-Ninja lighttpd-1.4.18]$ ~/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-readelf -d src/lighttpd

Dynamic section at offset 0x20790 contains 21 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libdl.so.2]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
 0x0000000c (INIT)                       0xc200
 0x0000000d (FINI)                       0x231c0
 0x00000004 (HASH)                       0x8128
 0x00000005 (STRTAB)                     0xa338
 0x00000006 (SYMTAB)                     0x8b48
 0x0000000a (STRSZ)                      5946 (bytes)
 0x0000000b (SYMENT)                     16 (bytes)
 0x00000015 (DEBUG)                      0x0
 0x00000003 (PLTGOT)                     0x30860
 0x00000002 (PLTRELSZ)                   960 (bytes)
 0x00000014 (PLTREL)                     REL
 0x00000017 (JMPREL)                     0xbe40
 0x00000011 (REL)                        0xbe00
 0x00000012 (RELSZ)                      64 (bytes)
 0x00000013 (RELENT)                     8 (bytes)
 0x6ffffffe (VERNEED)                    0xbd70
 0x6fffffff (VERNEEDNUM)                 2
 0x6ffffff0 (VERSYM)                     0xba72
 0x00000000 (NULL)                       0x0

拷贝动态库:
[tekkamanninja@Tekkaman-Ninja lighttpd-1.4.18]$ cp ~/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/libdl-2.3.2.so ~/working/nfs/rootfs/lib/
[tekkamanninja@Tekkaman-Ninja lighttpd-1.4.18]$ cp ~/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/libdl.s*  ~/working/nfs/rootfs/lib/

在开发板为此程序新建一个用户及存储网页的根目录以及一个log目录:

开发板操作:
[root@~]#adduser -g user lighttpd
Changing password for lighttpd
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 `lighttpd' changed by user `root'
Password changed.
[root@~]#

HOST 操作:
[tekkamanninja@Tekkaman-Ninja lighttpd-1.4.18]$ cd ../../nfs/rootfs/home/lighttpd/
[tekkamanninja@Tekkaman-Ninja lighttpd]$ su
口令:
[root@Tekkaman-Ninja lighttpd]# mkdir html
[root@Tekkaman-Ninja lighttpd]# chmod 777 html/
[root@Tekkaman-Ninja lighttpd]# mkdir  ../../var/log/lighttpd
[root@Tekkaman-Ninja lighttpd]# chmod 777 ../../var/log/lighttpd

将移植好的程序(整个目录,其中包含了bin、sbin、lib和share目录)拷贝到开发板根文件系统的根目录下:
[root@Tekkaman-Ninja lighttpd]# mv /lighttpd   /home/tekkamanninja/working/nfs/
[root@Tekkaman-Ninja lighttpd]# exit
exit

四、运行程序

在开发板上操作:

[root@~]#/lighttpd/sbin/lighttpd -f /etc/lighttpd.conf

将测试静态网页放在server.document-root设置的目录下,并在HOST的浏览器下输入开发板IP,测试通过。

至于CGI的运行,我还不懂配置,有空再研究!

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值