http与cgi

首先我先给大家解释cgi是什么?

cgi定义:cgi(Common Gateway Interface)是http服务器与你的机器或其它机器上的程序进行“交谈 ”的一种工具,其程序必须运行在网络服务器上。

cgi处理程序的步骤:

1:通过网络把用户请求发送到服务器

2:服务器接受用户请求并交给cgi程序处理

3:cgi程序把处理结果传回给服务器

4:服务器把结果送回到用户

注意:cgi程序不是放到服务器上就能顺利运行,需要对所使用的服务器进行配置。(下面是我对http服务器的一些配置)

(1)yum install prel-CGI.noarch (下载第三方软件去支持cgi和http能够合作)

(2)到http默认发布目录/var/www/html建立一个目录cgi(自己可以随便建立任意一个目录),在cgi目录下写index.cgi这个文件,文件内容如下(显示时间):

#!/usr/bin/perl

print "Content-type: text/html\n\n";

print `date`;

(3)到/etc/httpd/conf.d下有一个default.conf(如果没有这个文件可自行建立)文件内容如下

Virtualhost _default_:80>

Documentroot "/var/www/html"

customlog "logs/default-vhost.log" combinedWed Jun 17 18:24:24 CST 2015

require all granted

Options +ExecCGI

AddHandler cgi-script .cgi

(4)给/var/www/html/cgi/index.cgi一个执行权限及改变它的安全上下文

[[email protected] ~]# chmod +x /var/www/html/cgi/index.cgi

[[email protected] ~]# ls -l  /var/www/html/cgi/index.cgi

-rwxr-xr-x. 1 root root 67 Jun 17 16:49 /var/www/html/cgi/index.cgi

[[email protected] ~]# semanage fcontext -a -t httpd_sys_script_exec_t ‘/var/www/html/cgi‘

[[email protected] ~]# restorecon -RvvF /var/www/html/cgi/

[[email protected] ~]# ll -Zd /var/www/html/cgi/

drwxr-xr-x. root root system_u:object_r:httpd_sys_script_exec_t:s0 /var/www/html/cgi/

(5)这样就可以在浏览器中看到结果

Wed Jun 17 18:24:24 CST 2015

~

时间: 2024-10-05 07:29:46

http与cgi的相关文章

人菊痔舟乐uqxr8c2113h534n89g

新华社瓦莱塔4月10日电(记者李拯宇 李佳)全国政协主席俞正声10日在前往非洲三国进行正式友好访问途中过境马耳他,在瓦莱塔会见马耳他议长法鲁贾. 俞正声说,中马保持长期友好关系,政治上相互信任,经济上密切合作,人文交流不断深化.中方感谢马方在中国撤侨行动中给予的支持和帮助.中方愿同马方一道,落实两国领导人达成的共识,弘扬中马传统友好,拓展在科技.渔业.旅游等领域互利合作,打造合作新亮点.中国全国政协愿与马耳他议会和社会各界保持密切交往,加强治国理政经验交流,为两国扩大务实合作营造良好环境,共同促

十分钟搞懂什么是CGI

原文:CGI Made Really Easy,在翻译的过程中,我增加了一些我在学习过程中找到的更合适的资料,和自己的一些理解.不能算是严格的翻译文章,应该算是我的看这篇文章的过程的随笔吧. CGI真的很简单 在此之前,你或许听说过很多说CGI'晦涩难懂'的言论.如果你会写最基本的输入输出,那么你就可以写出一个CGI脚本.如果你已经是一个程序员,你只需要几分整就可以明白CGI到底是个什么东西.如果你还不是一个名程序员,对不起这篇文章不是很适合你,你可以先去学习一些编程的知识,例如脚本语言或者sh

nginx设置cgi.fix_pathinfo漏洞和解决方法

最近在学习nginx的配置,有一个设置需要在php.ini中把 cgi.fix_pathinfo = 1 改成cgi.fix_pathinfo=0, 想了解下这个参数设置的具体功能,所以百度了下,发现这里有一个PHP PATH_INFO的漏洞(详见:https://bugs.php.net/bug.php?id=50852&edit=1)大致先了解下. [漏洞分析]location对请求进行选择的时候会使用URI环境变量进行选择,其中传递到后端Fastcgi的关键变量SCRIPT_FILENAM

ubuntu 安装bugzilla---index.cgi show text

安装完 bugzilla 之后 访问 url/bugzilla 之后没有出现登录界面,而是出现了index.cgi代码. 解决办法: You can see if the directory /etc/apache2/mods-enabled/ has a symlink cgi.load. If there is no such symlink, you can create it by running sudo a2enmod cgi and then restart Apache: sud

Home Web Server 1.9.1 build 164 - CGI Remote Code Execution复现

一.  Home Web Server 1.9.1 build 164 - CGI Remote Code Execution复现 漏洞描述: Home Web Server允许调用CGI程序来通过POST请求访问位于/cgi-bin下的文件,然后通过目录遍历,就有可能执行远程主机的任意可执行程序. 漏洞影响范围: Home Web Server 1.9.1 build 164 漏洞复现: 利用原理: NC连接发送打开计算器请求,安装Home Web Server 1.9.1 build 164

CGI概念

CGI(通用网关接口,Common Gateway Interface) CGI是Web服务器与请求处理程序之间传输数据的一种标准,保证Web服务器传递过来的数据是标准格式的,其程序须运行在网络服务器上.CGI可以用任何一种语言编写,只要这种语言具有标准输入.输出和环境变量.工作原理:每当客户请求CGI的时候,WEB服务器就请求操作系统生成一个新的CGI解释器进程(如:PHP-CGI),当CGI满足要求后,WEB服务器就杀死这个进程.Web服务器(如:Nginx)只是内容的分发者,如果请求/in

cgi程序读取post发送的特殊字符,尤其适合于微信公众平台开发中发送被动消息

[问题]用c编写cgi程序怎样取出html表单post来的数据? [分析]html表单post来的数据形如username="zhang"&&password="123456"&&useid="012" [方法1]lainco #include <stdio.h> #include <stdlib.h> #include <string.h> char *getcgidata(F

ubuntu下apache2 安装 配置 卸载 CGI设置 SSL设置

一.安装.卸载apache2 apache2可直接用命令安装 sudo apt-get install apache2 卸载比较麻烦,必须卸干净,否则会影响apache2再安装 (1) sudo apt-get --purge remove apache2 sudo apt-get --purge remove apache2.2-common sudo apt-get autoremove (2) (关键一步)找到没有删除掉的配置文件,一并删除 sudo find  /etc -name "*

CGI,FastCGI,PHP-CGI,PHP-FPM,Spawn-FCGI

CGI CGI, Common Gateway Interface, is a tool for HTTP server to contact with programs on other servers, which can be used into any languages with standard input, standard output and environmental variables, such as PHP, Perl, or Tcl. FastCGI FastCGI 

学习python cgi的一点心得体会

这两天学了python cgi编程,挺好玩的 跟大家分享一下: 目标: 创建一个cgi脚本 接收来访者的参数 步骤: 创建一个cgi服务的根目录(随便创建,然后在终端或者cmd下切换到该目录下) python2.x的httpserver启动:python -m CGIHTTPServer 13333   会启动http server 在13333端口上 python3.x的httpserver启动:python -m http.server --cgi 13333 这个--cgi不可以拿掉 否则