像PHP一样运行Python脚本

时间:2012-03-12 09:38:00

标签: php python apache wsgi

服务器上有Apache 2 + mod_wsgi + Python 2.6。

我想像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

3 个答案:

答案 0 :(得分:2)

从技术上讲,您正在做的事情应该有效,但请参阅AddHandler方法以配置mod_wsgi:

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

这样你就不必使用Files指令。

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

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

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

答案 1 :(得分:1)

这看起来并不像运行wsgi应用程序一样酷,所以我建议您使用flask framework,它就像一个理智的框架一样简单。

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

稍后,您可能想要考虑一个很酷的框架,如Django,Pyramid,Grok ......

如果你真的想像mod_php一样使用mod_wsgi,请查看Graham Dumpleton的答案。

答案 2 :(得分:0)

我使用mod_cgi

运行Python之类的Python脚本

这是Apache的tutorial。并且要使用的cgi接口是Python.org的here

启动并运行后,我会在这里使用第二个好东西tutorial

我要补充一点的是,有一种配置Apache的简便方法。

步骤1 :上面的指南中未提及的第一步是启用apache中的CGI处理。

  

sudo a2enmod cgi

如果您的服务器配置了多线程MPM,这将自动启用mod_cgid。

第2步:编辑您的httpd.conf或在 / etc / apache2 / sites-enabled 中命名的任何内容  在Linux Mint 19.2中。

为带有/index.py的脚本启用

<VirtualHost *:80>
   DocumentRoot /your/www/html
   DirectoryIndex  index.py
</VirtualHost>

第3步:启用其他python脚本,以便它们也可以在同一文件夹或子目录中运行。

<Directory "/your/www/html/*">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
    AddHandler cgi-script .py
    AddHandler default-handler .jpg .png .gif .css .js .ico
</Directory>

ScriptAlias /   /your/www/html/

要成功运行python脚本,必须遵守两个警告。

  1. 在linux中运行时,请确保每个python file.py的行结尾均为 Unix行尾。否则,python脚本将无法运行。例如, Notepad ++在其菜单的工具栏上具有“编辑”,“ EOL转换”,“ Linux(LF)”。

  2. 确保每个python file.py的权限都具有执行权限。
    在Linux Mint 19.2中,我右键单击该文件,依次转到“属性”,“权限”, 然后选中执行:允许将程序作为文件执行的复选框。要不就 运行命令:

  

chmod a+x python_script.py

快乐的Python编码!