基于TinyHTTPd的嵌入式网站搭建
TinyHTTPd是一个开源的轻量级HTTP服务器,使用C语言实现,整个代码500多行,10多个函数。
官网:https://tinyhttpd.sourceforge.net/
一、在Debain9下编译运行TinyHTTPd
- 打开官网,点击最后的【project page】,并在打开的页面中点击【Download】下载源码。
- 下载【libsocket】的源码,下载地址:https://github.com/dermesser/libsocket。
- 登录Debain9,安装cmake:
apt-get install cmake
- 进入libsocket解压后的目录,通过以下命令编译安装libsocket:
mkdir build cd build cmake .. make make install
- 进入TinyHTTPd解压后的目录,通过修改httpd.c第478行,更改服务启动时绑定的端口号:
u_short port = 8008;
- 通过以下命令编译并运行HTTPD:
make ./httpd
- 通过服务器IP和端口进行访问。
二、测试静态文件
在htdocs目录下新建目录demo,并在demo下创建index.html,输入以下内容:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<p>This is a demo.</p>
</body>
</html>
启动httpd,页面访问http://{ip}:8008/demo/index.html显示页面。
三、测试Shell CGI
- 在demo目录下,创建person.sh.cgi,输入以下内容:
#!/bin/sh echo "Content-type: application/json;charset=utf-8" echo "" echo "{" echo "\"name\":\"$QUERY_STRING\"" echo "}"
- 将person.sh.cgi加上可执行权限:
chmod a+x person.sh.cgi
- 启动httpd,页面访问http://{ip}:8008/demo/person.sh.cgi?Jack ,页面响应以下JSON数据:
{ "name":"Jack" }