C语言CGI和Apache服务器的开发环境

简介:

今天中午在研究c语言gui时看到了cgi。之前花了些时间找c语言的gui框架,也找到了几个暂时比较满意的,但是看到了cgi后觉得也可以尝试一下。在web开发方面有点经验,或许会简单一些。Google了一下,现在讨论cgi,尤其是c语言cgi的话题已经很少了,花了些精力,总算搭建好了一个可用的开发环境,也运行出了程序。下面简单分享一下,我的实验过程。其实是很简单的事情。

  首先,需要用到的这些工具和代码:

  C语言编译器,我用了IDE(Vsiual C++ 2008 Express Edition,下面称VC2008),其他编译器(gcc、tcc等)也可;

  Apache服务器,我用的是USBWebSever中包含的Apache服务器(下载地址) ,这是个AMP服务器套装,不用安装即可使用,而本地安装的Apche服务器也可以使用;

  cgic(下载地址 ),这是用ANSI C写的一个cgi库,这里用它提供的代码来测试我们的运行环境,其他规范的c代码也是可以的;

  接着,编译C语言的cgi程序。

  在VC2008里面建一个Visual C++空项目;

  从刚才下载的cgic代码压缩包中提取cgic.h、cgic.c和cgictest.c三个文件,添加到新建的项目里面;

  打开当前项目的属性页(在解决方案资源管理器右击项目名称,选菜单中的属性),在配置属性-C/C++-预处理器中找到预处理器定义,添加WIN32;

  这时可以按F7生成解决方案,VC2008开始编译代码和链接,生成可执行文件(.exe)。报出若干警告,忽视之。这样cgi程序就做好了。

  然后,配置和启动Apache服务器。

  对于本地安装的Apache服务,需要修改配置文件httpd.conf若干内容(参考文章链接),如下:

  1. ScriptAlias /cgi-bin/ "E:/apache2/Apache2/cgi-bin/"  
  2. <Directory "E:/apache2/Apache2/cgi-bin"> 
  3. AllowOverride None  
  4. Options ExecCGI  
  5. Order allow,deny  
  6. Allow from all  
  7. </Directory> 
  8. AddHandler cgi-script .exe .pl .cgi

  其中E:/apache2/Apache2/cgi-bin/要改成你准本放cgi程序的目录。修改好httpd.conf后可能需要重启Apache服务器

  对USBWebSever,似乎不用修改httpd.conf。如果需要,应该对settings目录下的httpd.conf类比上面的内容进行修改,文中{rootdir}/cgi-bin/这类文字最好不要修改!修改好以后,双击USBWebSever.exe就可以启动Apache服务器了。

  最好把刚才生成的cgi程序(.exe文件),复制放到上文中提到的/cgi-bin/目录下,文件名最好改成index.cgi这样的形式。对于USBWebSever,cgi-bin目录应该是root目录下的cgi-bin目录(如果没有要新建一个),不是和USBWebSever在同一目录下的cgi-bin目录。我的目录结构是这样的

  打开浏览器输入http://localhost:8080/cgi-bin/index.cgi(地址取决于你自己的具体设置),就可以看到cgi程序已经运行了。


本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

目录
相关文章
|
6月前
|
Java 网络安全 Apache
SshClient应用指南:使用org.apache.sshd库在服务器中执行命令。
总结起来,Apache SSHD库是一个强大的工具,甚至可以用于创建你自己的SSH Server。当你需要在服务器中执行命令时,这无疑是非常有用的。希望这个指南能对你有所帮助,并祝你在使用Apache SSHD库中有一个愉快的旅程!
361 29
|
SQL 缓存 自然语言处理
实战案例1:基于C语言的Web服务器实现。
实战案例1:基于C语言的Web服务器实现。
|
数据库连接 Apache Java
【独家揭秘】图书管理系统的奇幻之旅:一文看透Apache Wicket如何从想法萌芽到服务器上翩翩起舞?
【8月更文挑战第31天】本文通过实战案例,详细介绍从概念到部署的Apache Wicket应用开发全流程。以在线图书管理系统为例,涵盖应用概念定义、项目创建、架构设计、首页编写、数据库交互及应用部署等关键步骤。通过Maven或Gradle引入Wicket依赖,设计包结构,并使用JPA或Hibernate处理数据持久化。最终,将应用配置并部署到Tomcat或Jetty服务器,帮助你全面掌握Wicket开发技巧。
128 1
|
网络协议 数据处理 C语言
利用C语言基于poll实现TCP回声服务器的多路复用模型
此代码仅为示例,展示了如何基于 `poll`实现多路复用的TCP回声服务器的基本框架。在实际应用中,你可能需要对其进行扩展或修改,以满足具体的需求。
220 0
|
移动开发 网络协议 编译器
实战案例3:C语言实现的HTTP服务器
实战案例3:C语言实现的HTTP服务器
|
监控 Linux 测试技术
|
监控 安全 网络安全
如何保护 Apache 服务器的安全
【8月更文挑战第23天】
272 0
|
21天前
|
存储 缓存 数据挖掘
阿里云目前最便宜云服务器介绍:38元、99元、199元性能,选购攻略参考
轻量应用服务器2核2G峰值200M带宽38元1年;云服务器经济型e实例2核2G3M带宽99元1年;云服务器通用算力型u1实例2核4G5M带宽199元1年。对于还未使用过阿里云服务器的用户来说,大家也不免有些疑虑,这些云服务器性能究竟如何?它们适用于哪些场景?能否满足自己的使用需求呢?接下来,本文将为您全方位介绍这几款云服务器,以供您了解及选择参考。
|
25天前
|
网络安全 云计算
如何设置阿里云轻量应用服务器镜像?
本文介绍了在阿里云轻量应用服务器上创建与配置镜像的详细步骤。镜像是一种特殊的文件系统映射,可用于快速克隆服务器配置。内容涵盖准备条件、登录控制台、创建实例、生成镜像、下载与设置镜像,以及如何使用镜像启动新实例。适合希望提升服务器部署效率的用户参考。
|
28天前
|
存储 弹性计算 安全
阿里云轻量服务器通用型、CPU优化型、多公网IP型、国际型、容量型不同实例区别与选择参考
阿里云轻量应用服务器实例类型分为通用型、CPU优化型、多公网IP型、国际型、容量型,不同规格族的适用场景和特点不同,收费标准也不一样。本文为大家介绍轻量应用服务器通用型、多公网IP型、容量型有何区别?以及选择参考。

推荐镜像

更多