2013-12-12 48 views
0

据我所知,在web服务器上运行Python脚本的一种方法是定义cgi-bin目录,然后在那里放置我的script.cgi。这可能会导致类似http://example.com/cgi-big/script.cgi在其他位置从cgi-bin运行python脚本

但是如果我需要从不同位置调用该脚本,该怎么办?我的意思是,假设这个脚本的目的是生成一个网页,我希望这个页面可以在http://example.com/the/other/cute/location/上访问。那么我应该如何采取行动?

通过的index.html使用SSI的唯一途径,其中包括这样的事情:

<!--#exec cmd="../../../script.cgi" -->

还是有什么其他的解决方案?

回答

1

有很多方法可以在任何你喜欢的位置运行你的脚本;大多数情况下这是通过您的Web服务器配置完成我假设你使用的是Apache,但是也有办法在其他Web服务器上完成所有这些事情。关键指令看起来像:

选项ExecCGI SetHandler CGI脚本

对于您正在试图做modpython也什么声音是什么你感兴趣的一个简单的解决方案有通过这个阅读: http://modpython.org/python10/

点是 - 你可以配置一个apachehandler监听特定目录或特定文件类型(或两者)的请求,并让他们得到处理modpython。

如果您更感兴趣的剧本被视为传统的CGI这仍是一个选项,在这里相当有据可查: http://httpd.apache.org/docs/2.0/howto/cgi.html 同样给你扫描如何指定modpython apachehandler合作,开发基于文件类型或位置你可以为cgi处理程序(或者perl或php)做同样的事情 - 你可以看到为什么这些东西是模块化的。

...的完整性,我还要指出WSGI,而它仍然新变化可能是更接近于在未来的东西方向,当涉及到基于服务器的脚本: http://en.wikipedia.org/wiki/Web_Server_Gateway_Interface WSGI是怎么回事似乎很难让你的头脑最初,我会开始与前两个选项之一。

我很自信我没有涵盖你可以在网络服务器上运行python的所有方法......但我想我已经把你关闭到你想知道的东西。

0

嗯,这是其中一个的方式运行Python脚本,但不是很好很好的方式。在Web服务器上运行Python脚本有很多更好的方法,其中最好的是通过WSGI运行的(微)框架。

要回答您的问题,您可以在Apache配置中使用Alias指令将您的URL映射到您的脚本位置。还请注意cgi-bin目录没有什么神奇之处:只要您在该目录的Options指令中设置ExecCGI标志(和AddHandler),任何目录均可用于可执行脚本。