Apache中配置CGI

By | April 19, 2016

先介绍下系统环境:

Fedora 23
Apache(httpd) 2.4.18
Python 2.7.11

1.要在Apache中配置CGI,首先要确认CGI相关的模块已安装,一般在httpd.conf文件中打开LoadModule cgi_module modules/mod_cgi.so一行的注释符,但在我的环境下此文件中没有这一行,然而在//httpd/conf.modules.d目录下有01-cgi.conf这样一个文件,不错,这个就是cgi的配置文件,在这里有类似的配置,默认的就配置好了。

2.在服务器(虚假主机)配置文件的Directory指令中加入这样一行,此行作用是在Directory指定的目录下允许运行CGI文件:

3.在主机配置文件中适当位置配置如下指令,以告诉Apache哪些后缀的文件可作为CGI文件执行(这里以python文件的后缀为例):

到目前为止,Apache的配置已经基本完成,现在起重启下Apache。接下来是编写需要CGI执行的python文件,并保存在适当目录下(可以是上面的Directory指定的目录,或ScriptAlias以及Alias指令指定的目录):

在这里将此文件命名为test.py

在该文件可被Apache执行的情况(需要执行权限), 在浏览器中输入相应的URL,页面中即可显示出“Hello World!”

关于ScriptAlias指令:ScriptAlias指令可以指定HTTP请求的URI中如果含有特定部分会被定向到服务器中的其他目录,其他目录可以是站点根目录以外的目录,这可以保证服务器所请求文件的安全。

上面的ScriptAlias指令将所有的以“/cgi-bin/”为前缀的URI请求的文件都将被Apache影射到“/usr/local/apache2/cgi-bin/”目录下的文件,即访问前者会以后者来替换,后者里面的文件会被以CGI程序来对待。

参考自:http://httpd.apache.org/docs/current/howto/cgi.html


© 2016, Navin. All rights reserved.

鉴于本人的相关知识储备以及能力有限,本博客的观点或者描述如有错漏或是有考虑不周到的地方还请多多包涵,也欢迎指正,一起学习,共同进步。