Ubuntu + Apache2 环境下用C编写 一个简单的cgi脚本

我只学习过c语言,没有学习过prel,网上很多教程都是针对prel的,很少有针对c的。自己在Ubuntu下鼓捣了一下午,也总算是用c成功编写了一个helloworld的cgi,算是cgi入门的第一步。   一、安装及配置apache服务器   安装apache2服务器 #sudo apt-get install apache2   配置apache2服务器 配置文件位于 /etc/apache2/sites-enabled/000-default 用vi打开配置文件: #sudo vi /etc/apache2/sites-enabled/000-default 修改其中两句为: DocumentRoot /var/www/html ScriptAlias /cgi-bin/ /var/www/html/cgi-bin/ 注意其中空格的问题。   这两个目录你可以自己设定,并且设定的目录要真实存在,如果不存在就 mkdir 出一个。 DocumentRoot后面是放HTML文件的目录。 ScriptAlias后面是指定/cgi-bin/连接到/var/www/html/cgi-bin/ ,也就是在这个目录中的文件均被认作是cgi程序。 例如如果浏览器中访问 http://127.0.0.1/cgi-bin/hello.cgi 就可以执行cgi-bin下的hello.cgi 配置完保存。   重启apache2: #sudo /etc/init.d/apache2 restart  

二、编写hello.cgi程序   在cgi-bin/下新建一个hello.c文件: #sudo vi hello.c 在其中写入以下内容: #include <stdio.h>   int main()   { printf("Content-Type: text/html\n\n");   printf("Hello, world\n");   return 0; } 保存退出。   编译: #sudo gcc hello.c -o hello.cgi 这里可以先运行一下 #sudo ./hello.cgi 看看是不是输出helloworld。   然后可以在浏览器中键入http://127.0.0.1/cgi-bin/hello.cgi 浏览器就可以显示出helloworld了。   三、权限问题   我的方法比较野蛮就是把所有相关的文件和目录的权限均设置为777 #sudo chmod 777 [文件名或目录] 在这里主要是先入个门,以后有时间在慢慢研究权限的问题。

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2010-11/29790.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
支持传统C++开发及运行的跨平台的Web网站服务器端环境,建立在Apache平台上,knewcode0.92a版。 测试运行:(测试环境,Windows7) 1、将本目录拷贝到D盘根目录;(如果需要拷贝到其他目录,请自行修改Apache的配置文件“debug\httpd-2.2.25-win32\Apache22\conf\httpd.conf”) 2、运行“D:\knewcode0.92a\StartDebug.bat”启动Apache及knewcode运行环境; 3、在浏览器中,输入“http://127.0.0.1:8090/hello_world.kc”,测试“hello_world_cpp”例子; 4、在浏览器中,输入“http://127.0.0.1:8090/”,测试“exam_blog”例子; 5、“D:\knewcode0.92a\sample\src\webservice_client(c#)”是C#的Webservice客户端例子,可直接运行“webservice_client.exe”测试。 Linux下安装:(测试环境Ubuntu14.04 32位版) 1、将本目录拷贝到“/home”目录下;(如果需要拷贝到其他目录,请自行修改“kc_apache_mod.conf”和“kc_apache_mod.load”文件) 2、使用超级管理员权限,运行“/home/knewcode0.92a/debug/linux_apache_setup/setup.sh”脚本,拷贝2个配置文件到Apache环境下; 3、修改Apache的相关配置文件,将“/home/knewcode0.92a/sample”目录设置为Apache的主页目录,并设置权限; 4、修改目录权限,设置“/home/knewcode0.92a”目录为可运行和可读写,“/home/knewcode0.92a/sample”目录的所有者改为“www-data”; 5、目前只在Ubuntu14.04 32位版下测试过,其他版本Linux请自行验证,并反馈问题给我,谢谢;目前只支持32位版的Linux。 系统目前尚处于测试阶段,如遇任何问题,请反馈到如下邮箱,谢谢! [email protected] ******************************************************************************************** 2015-09-21:knewcode0.92a版 增加信号处理,降低因段错误,浮点错误,除0错误等异常,引起的系统崩溃。 2015-09-14:knewcode0.91a版 初始版本。
支持传统C++开发及运行的跨平台的Web服务器端环境,建立在Apache平台上,knewcode0.91a版。 测试运行:(测试环境,Windows7) 1、将本目录拷贝到D盘根目录;(如果需要拷贝到其他目录,请自行修改Apache的配置文件“debug\httpd-2.2.25-win32\Apache22\conf\httpd.conf”) 2、运行“D:\knewcode0.91a\StartDebug.bat”启动Apache及knewcode运行环境; 3、在浏览器中,输入“http://127.0.0.1:8090/hello_world.kc”,测试“hello_world_cpp”例子; 4、在浏览器中,输入“http://127.0.0.1:8090/”,测试“exam_blog”例子; 5、“D:\mycode\knewcode\release\0.91a\sample\src\webservice_client(c#)”是C#的Webservice客户端例子。 Linux下安装:(目前只在Ubuntu14.04 32位版下测试通过,目前只支持32位版的Linux) 1、将本目录拷贝到“/home”目录下;(如果需要拷贝到其他目录,请自行修改“kc_apache_mod.conf”和“kc_apache_mod.load”文件) 2、使用超级管理员权限,运行“/home/knewcode0.91a/debug/linux_apache_setup/setup.sh”脚步,拷贝2个配置文件到Apache环境下; 3、修改Apache的相关配置文件,将“/home/knewcode0.91a/sample”目录设置为Apache的主页目录,并设置权限; 4、修改目录权限,设置“/home/knewcode0.91a”目录为可运行和可读写,“/home/knewcode0.91a/sample”目录的所有者改为“www-data”。 目前处于测试阶段,如遇任何问题,请反馈到如下邮箱,谢谢! [email protected]
支持传统C++开发及运行的跨平台的Web网站服务器端环境,建立在Apache平台上,knewcode0.93a版。 测试运行:(测试环境,Windows7) 1、将本目录拷贝到D盘根目录;(如果需要拷贝到其他目录,请自行修改Apache的配置文件“debug\httpd-2.2.25-win32\Apache22\conf\httpd.conf”) 2、运行“D:\knewcode0.93a\StartDebug.bat”启动Apache及knewcode运行环境; 3、在浏览器中,输入“http://127.0.0.1:8090/hello_world.kc”,测试“hello_world_cpp”例子; 4、在浏览器中,输入“http://127.0.0.1:8090/”,测试“exam_blog”例子; 5、“D:\knewcode0.93a\sample\src\webservice_client(c#)”是C#的Webservice客户端例子,可直接运行“webservice_client.exe”测试。 Linux下安装:(测试环境Ubuntu14.04 32位版) 1、将本目录拷贝到“/home”目录下;(如果需要拷贝到其他目录,请自行修改“kc_apache_mod.conf”和“kc_apache_mod.load”文件) 2、使用超级管理员权限,运行“/home/knewcode0.93a/debug/linux_apache_setup/setup.sh”脚本,拷贝2个配置文件到Apache环境下; 3、修改Apache的相关配置文件,将“/home/knewcode0.93a/sample”目录设置为Apache的主页目录,并设置权限; 4、修改目录权限,设置“/home/knewcode0.93a”目录为可运行和可读写,“/home/knewcode0.93a/sample”目录的所有者改为“www-data”; 5、目前只在Ubuntu14.04 32位版下测试过,其他版本Linux请自行验证,并反馈问题给我,谢谢;目前只支持32位版的Linux。 系统目前尚处于测试阶段,如遇任何问题,请反馈到如下邮箱,谢谢! [email protected] ******************************************************************************************** 2015-11-11:knewcode0.93a版 1、增加print的简化关键字“p”; 2、增加“exec”关键字,用于执行自定义脚本; 3、字符串中增加用2个双引号表示1个双引号的转义字符; 4、增加变量定义的“--ref--”选项,用于定义同名外部变量的引用(如无对应的外部变量,则重新定义一个); 5、增加“delay”关键字,用于延迟脚本在特定的位置执行; 6、增加变量定义的“--static--”选项,防止重复定义的变量被覆盖; 7、修复了一些,在负载测试中,因高并发的进程或线程,引起的系统崩溃的bug; 8、修复了db_action和so_session应用中的一些内存泄漏等的bug。 2015-09-21:knewcode0.92a版 增加信号处理,降低因段错误,浮点错误,除0错误等异常,引起的系统崩溃。 2015-09-14:knewcode0.91a版 初始版本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值