用于测试cgi-bin

时间:2015-10-01 11:28:46

标签: linux httpserver cgi-bin

我开发并维护了一个Web应用程序,它充当cgi-bin中某些脚本的前端,后者又调用服务器上的C程序。 Web服务器是Apache2,托管在我的办公室 Linux 框上进行测试,在Amazon ECC上进行实际部署。

我的问题是我不在旅行,大多数没有任何互联网连接,只有一个小型便携式Linux机器,但我想开发下一版本的网页,脚本,数据集和程序。测试静态网页是没有问题的,但是调用服务器端cgi-bin脚本的测试页面总是有问题的,所以我的想法是在可移植的linux盒子(ubuntu 14.04)上安装一个最小的http服务器,这将允许服务器和客户端在同一台机器上没有任何互联网(也许只有一个插座)介于两者之间。

当然我可以直接测试脚本和程序,但是这不会运行诸如处理$ POST_DATA中的顶级设置字符或设置和检索cookie等功能,因此不可避免地会导致代码库的某些分歧。 / p>

所以:

  1. 这样做是否合情合理还是有更好或更简单的方法来做我想要的事情?

  2. 如果这是明智的,你会推荐什么样的hppt服务器?我想到了miniWeb但没有经验。

  3. PS:我是服务器端程序(数学系统)的专家,但作为apache系统管理员的经验却少得多。

1 个答案:

答案 0 :(得分:0)

对于很多事情来说,这已经足够了:

python3 -mhttp.server --cgi

不幸的是,它太小了,不支持设置 HTTP 状态之类的东西:https://bugs.python.org/issue10487

我没有使用 lighttpd,因为我不想编写配置文件。另一个可以使用的最小服务器是 mini-httpd:

sudo apt install mini-httpd
/usr/sbin/mini_httpd -D -p 8000 -c 'cgi-bin/*'

-D 选项将服务器保持在前台而不是守护它。 -p 选项是端口,-c 是我的 cgi 脚本的模式。

我还发现 busybox 的内置网络服务器可以很好地处理 cgi 脚本:

busybox httpd -p 8000 -f