据我所知,在Web服务器上运行Python脚本的一种方法是定义cgi-bin目录,然后将我的script.cgi放在那里。这可能会导致类似http://example.com/cgi-big/script.cgi。
但是如果我需要从不同的位置调用该脚本呢?我的意思是,让我们说,这个脚本的目的是生成一个网页,我希望该页面可以在http://example.com/the/other/cute/location/访问。那我该怎么办呢?
是通过index.html使用SSI的唯一方法,其中包括类似的内容:
<!--#exec cmd="../../../script.cgi" -->
或者还有其他解决方案吗?
答案 0 :(得分:1)
有许多方法可以在任何您喜欢的位置运行脚本;这主要是通过您的网络服务器配置完成的。我将假设您正在使用apache,但是也有办法在其他Web服务器上执行所有这些操作。关键指令看起来像:
选项ExecCGI SetHandler cgi-script
对于你想要做的事情,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的所有方法......但我认为我已经引导你接近你想知道的事情了。
答案 1 :(得分:0)
嗯,这是运行Python脚本的一种方式,但不是一种非常好的方式。在Web服务器上运行Python脚本有很多更好的方法,其中最好的是通过WSGI运行的(微)框架。
要回答您的问题,您可以在Apache配置中使用Alias
指令将URL映射到脚本位置。另请注意,cgi-bin
目录没有任何神奇之处:只要在Options指令中设置ExecCGI
标志(和AddHandler
),任何目录都可以用于可执行脚本。目录