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

标签 linux httpserver cgi-bin

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

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

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

所以:

  1. 这种方式是否明智,或者是否有更好或更简单的方式来做我想做的事?

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

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

最佳答案

对于很多事情这就足够了:

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

关于linux - 用于测试 cgi-bin 的最小 http 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32886483/

相关文章:

linux - 使用 shell 脚本从控制台添加多个值

json - 使用 Echo 或 Gin 框架的大型数组的内存消耗

java - IOUtils.toString 花费很长时间

linux - Apache2 cgi-bin 位置未更新

web - 如何防止自动创建 cgi-bin?

c++ - 使用 PulseAudio 和 C/C++ 录制计算机声音

linux - 从文件中读取行并直接写入 FIFO,无需在 RAM 中缓冲

linux - 用于编译和运行 C++ 程序的 Bash 脚本

php - 使用 xampp 和 phpmailer 的奇怪错误

充当 API 的 C 程序