用于测试 cgi-bin 的最小 http 服务器

问题描述 投票:0回答:1

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

我的问题是我正在旅行,大部分时间没有任何互联网连接,只有一台小型便携式 Linux 机器,但我想开发下一个版本的网页、脚本、数据集和程序。测试静态网页没有问题,但测试调用服务器端 cgi-bin 脚本的页面总是有问题,所以我的想法是在便携式 Linux 盒子(ubuntu 14.04)上放置一个最小的 http 服务器,这将允许服务器和客户端在同一台机器上,中间没有任何互联网(可能只有一个套接字)。

当然,我可以直接测试脚本和程序,但这不会执行诸如处理 $POST_DATA 中的最高位设置字符或设置和检索 cookie 之类的功能,因此不可避免地会导致代码库出现一些分歧。

所以:

  1. 这种方式明智吗?还是有更好或更简单的方法来做我想做的事?

  2. 如果合理的话,您会推荐什么hppt服务器?我想到了miniWeb,但没有经验。

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

linux httpserver cgi-bin
1个回答
1
投票

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

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

注意,可执行脚本需要位于“home”目录的

cgi-bin
文件夹中(默认为当前目录,使用
-h <DIR>
设置)。

© www.soinside.com 2019 - 2024. All rights reserved.