Tinyhttpd在linux下shell写cgi例子
如何在LINUX下编译,使用请看下面这篇文章:
《Tinyhttpd在linux下编译运行;自定义端口;端口占用解决》
-------------------------------------------------------------------------------------------------------
shell cgi代码:
复制默认 index.html 为 index2.html 和 color.cgi 为date.cgi
1 2 | $ cp index.html index2.html $ cp color.cgi date.cgi |
-
date.cgi代码:
1 2 3 4 5 6 7 8 9 | #!/bin/bash echo "Content-Type: text/html" echo echo "<HTML><head><meta charset=" utf-8 "><head><BODY>" echo "<CENTER>Today is:</CENTER>" echo "<CENTER><B>" date echo "</B></CENTER>" echo "</BODY></HTML>" |
index2.html 代码:
1 2 3 4 5 6 7 8 9 10 11 | <HTML> <TITLE>Index</TITLE> <BODY> <P>Welcome to J. David's webserver. <H1>CGI demo <FORM ACTION= "date.cgi" METHOD= "POST" > Enter a color: <INPUT TYPE= "text" NAME= "color" > <INPUT TYPE= "submit" > </FORM> </BODY> </HTML> |
就是将原来的color.cgi改成date.cgi就可以了
访问:
因为html文件名不是默认的名字,所以在访问时要输入具体的网页名。
1 | http: //192.168.178.128:8080/index2.html |
IP修改成你机器的IP
运行效果:
出现首页直接点“提交”按钮,就可以看到下图效果。
问题一:
效果页面乱码?
原因:
服务器LINUX默认是utf-8编码,但访问网页的Windows系统编码编码是gbk,所以乱码。
解决方法一:
IE浏览器--空白处右键--编码-其他-选择UTF8编码
解决方法二:
指定返回页面的编码。
在date.cgi文本里,约第4行的<HTML><BODY>中间加入如下html代码,
即指定页面编码格式,不指定则默认使用系统编码格式。
1 | <head><meta charset= "utf-8" ><head> |
运行效果:
解决方法三:
运行 ./httpd 启动前,先修改系统编码为英文,显示结果也为英文
1 | $ LANG=en_US.UTF-8 |
或 中文gbk编码
1 | $ LANG=zh_CN.gbk |
修改编码为英文后的效果:
参考:
http://cnblogs.com/nengm1988/p/7816618.html
https://blog.csdn.net/weixin_43468441/article/details/90756520
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!