当前位置: 代码迷 >> Web前端 >> RedHat9上thttpd Web服务器的移植 -转
  详细解决方案

RedHat9上thttpd Web服务器的移植 -转

热度:103   发布时间:2012-12-27 10:17:10.0
RedHat9下thttpd Web服务器的移植 ---转

?

1.下载并解压

? 下载地址为:http://www.acme.com/software/thttpd/? 最新的为2.25b

? 解压:

? # tar -xvzf thttpd-2.25b.tar.gz


2. 编译thttpd
? # cd thttpd-2.25b
? # ./configure
? # make


3. 安装与配置

3.1 进入 thttpd-2.25b目录下,拷贝thttpd二进制可执行文件到目标根文件系统/usr/sbin/目录中

? # cp -dpR thttpd /mnt/initrd/usr/sbin/.

3.2 进入 thttpd-2.25b目录下,拷贝thttpd配置文件,配置文件内容参看4

? # cp contrib/redhat-rpm/thttpd.conf /mnt/initrd/etc/.


3.3在目标系统的根文件系统中为thttpd创建一个httpd服务的根目录/var/www

? #mkdir -p /mnt/initrd/var/www??????????????? #放置HTML文件的根目录
? #mkdir -p /mnt/initrd/var/www/cgi-bin???? #添加支持cgi支持后,cgi脚本存放目录,如未支持cgi可不创建

?

3.4 我是动态编译所以查看一下需要的动态库,并把这些所需的库复制到目标系统的相应位置
???# ldd thttpd
??????? libcrypt.so.1 => /lib/libcrypt.so.1 (0x4001e000)
??????? libc.so.6 => /lib/libc.so.6 (0x4004b000)
??????? /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

?

虽然这里只列出了需要libcrypt、libc 和 ld-linux.so.2 这3个动态库,但是想要运行thttpd还需要libnss_files 动态库,
具体原因请看:http://www.jollen.org/blog/2006/10/library_dependency_1.html


4、增加对CGI的支持

默认配置下,thttpd不可以运行GCI(特别是动态编译的CGI程序)要想使用CGI支持功能,必须更改thttpd.conf的配置:


# This section overrides defaults
dir=/var/www
#chroot
#屏蔽chroot是为了运行动态编译的CGI
user=root# default = nobody
logfile=/var/log/thttpd.log
pidfile=/var/run/thttpd.pid
# This section _documents_ defaults in effect
port=80
#port参数用于更改端口号(可不改,若还运行了别的WEB服务器,则需用不同端口)
# nosymlink# default = !chroot
#symlinks
# novhost
cgipat=/cgi-bin/*
#声明CGI程序的目录,是以dir为根目录的路径
# nothrottles
# host=0.0.0.0
# charset=iso-8859-1


5. 启动thttpd

# thttpd -C /etc/thttpd.conf

注意只有root有启动权限!

移植完成,可以测试了(只需在WEB浏览器中键入开发板的IP地址即可)。
?