在浏览器上输入http://www.acme.com/software/thttpd/thttpd-2.29.tar.gz,或者使用wget http://www.acme.com/software/thttpd/thttpd-2.29.tar.gz 就可以获取Thttpd当前最新版本2.29的源程序的压缩包。
1.下载编译
(1)在linux控制台创建文件夹用于存放Thttpd源代码
mkdir Thttpd
(2)从Thttpd官方网站上下载当前最新版本的源程序的压缩包
wget http://www.acme.com/software/thttpd/thttpd-2.29.tar.gz
(3)对压缩包进行解析
tar zxvf thttpd-2.29.tar.gz
(4)进入解压后的源程序所在的文件夹
cd thttpd-2.29
(5)初始化Makefile文件
./configure
(6)编译源文件
由于在嵌入式设备上运行程序所有将会使用交叉编译器可以使用两种方式,比如我使用的交叉编译器powerpc-linux-gcc
1. make CC=powerpc-linux-gcc
2.修改Makefile文件 添加CC=powerpc-linux-gcc
顺便这里提一下,我进行编译的时候会报错但是感觉这里东西和项目的影响不大故将其注释掉了,没有太仔细思考原因,如果有明白的大神请指导一下。
我这里将SUBDIRS = cgi-src extras修改为 SUBDIRS =
(7)结果
编译完成之后将会产生thttpd这个文件就是最终的HTTP服务器的可执行文件。需要在宿主机上需要存放thttpd服务器的地方创建3个文件夹bin文件夹用于存放thttpd可执行程序,etc文件夹存放thttpd服务器启动的配置文件,www文件夹用于存放http的相关资源比如html文件css文件js文件和CGI程序以及相关的图文文件,这里需要注意的是除了后端程序具有可执行属性其他文件不应该具有可执行属性。
进入bin文件夹执行./thttpd -C ../etc/thttpd.conf 便可以按照你配置的属性去执行thttpd程序了。这里的thttpd.conf便是存放在etc文件夹里面的服务器启动的配置文件。配置文件大概为下图的样式:其中有几个参数比较重要
dir:就是存放网页资源的文件的绝对路径
user:为执行此程序的用户默认为nobody,如果发现文件在www路径下但是报错可以尝试设置user为root如果这样可行可能是相关文件的权限设置的不对
cgipat:是后端可执行文件在www文件夹下的文件夹的名字
port:是Thttpd程序监听的TCP端口号,在浏览器输入设备的IP地址默认认为此端口号为80,当时如果你在这里设置端口号为8080就需要在浏览器输入192.168.1.20:8080 这里的192.168.1.20为宿主机的IP地址。
(8)测试随便编写一个html文件放在www路径下输入192.168.1.20:8080/test.html
如果能够正确的得到此网页的信息表示在设备上的HTTP服务器搭建成功其中192.168.1.20为设备的IP地址8080位设置的HTTP监听的TCP端口号test.html为编写的html文件。