2012-03-12 211 views
5

服务器上有Apache 2 + mod_wsgi + Python 2.6。运行Python脚本,如PHP

我想像PHP脚本一样从Python运行脚本。这个想法可能看起来很愚蠢,但我很习惯(至少在开始学习Python时)。

实施例:

PHP - http://example.com/script.php

的Python - http://example.com/script.py

P.S.我知道mod_rewrite和其他类似的技巧可以做到这一点。但它只是一种伪装,而不是直接的运行。

UPD:我的.htaccess文件。 index.py工程,但其他python脚本得到404错误。

<Files *.py> 
SetHandler wsgi-script 
Options ExecCGI FollowSymLinks 
</Files> 
DirectoryIndex index.py 

回答

1

这看起来并不为具有WSGI应用程序运行的冷静,所以我建议你使用flask framework这很简单,只要可以是健全的框架。

以下是描述install procedure on mod_wsgi的链接。

之后,你可能要考虑像Django的,金字塔,神交一个很酷的框架...

如果你真的想使用mod_wsgi的喜欢mod_php的检查格雷厄姆邓普尔顿的伟大的答案。

+0

我写了关于mod_python的地方?我知道他已经过时了...... WSGI只是运行脚本的一点? – Ticksy 2012-03-12 09:49:44

+0

我想我误读了这篇文章。我不认为你可以使用WSGI来执行[mod_python/php-like](http://webpython.codepoint.net/mod_python_publisher_uri_traversal)配置。我正在给我的答案添加一个相关链接。 – jpic 2012-03-12 10:04:16

+1

说'它希望通过套接字连接到正在运行的WSGI进程'是完全错误的。它不像你认为它那样工作。 – 2012-03-12 17:46:51

2

你在做什么技术上应该工作,但看到的AddHandler方法在配置mod_wsgi的:

http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#The_Apache_Alias_Directive

这样,你不必使用文件指令捣鼓。

SetHandler做类似的事情,但上下文中的所有文件都被视为WSGI脚本文件,即使它们可能是静态的HTML或PHP文件。你因为使用文件而限制了它,但最好只使用AddHandler。

请注意,代码重新加载不会像您习惯于使用PHP一样工作。见:

http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode

+0

只能使用index.py。其他* .py文件显示404错误。 – Ticksy 2012-03-13 07:22:01

+0

我不喜欢WSGIScriptAlias的方式。 – Ticksy 2012-03-13 07:24:38

+0

WSGIScriptAlias实际上是每个人都使用的方式,因为规范是人们使用一些描述框架。从头开始编写WSGI的东西是非常不鼓励的,因为它太容易出错。如果它不适用于其他.py URL,那么在Apache配置的其他部分中可能会发生其他情况,这会影响它,因为它可以做到。 – 2012-03-13 23:34:12