服务器上有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
答案 0 :(得分:2)
从技术上讲,您正在做的事情应该有效,但请参阅AddHandler方法以配置mod_wsgi:
http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#The_Apache_Alias_Directive
这样你就不必使用Files指令。
SetHandler做类似的事情,但上下文中的所有文件都被视为WSGI脚本文件,即使它们可能是静态HTML或PHP文件。你得到它,因为使用文件限定,但最好只使用AddHandler。
请注意,代码重新加载不会像您习惯使用PHP那样工作。参见:
答案 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脚本,必须遵守两个警告。
在linux中运行时,请确保每个python file.py的行结尾均为 Unix行尾。否则,python脚本将无法运行。例如, Notepad ++在其菜单的工具栏上具有“编辑”,“ EOL转换”,“ Linux(LF)”。
确保每个python file.py的权限都具有执行权限。
在Linux Mint 19.2中,我右键单击该文件,依次转到“属性”,“权限”,
然后选中执行:允许将程序作为文件执行的复选框。要不就
运行命令:
chmod a+x python_script.py
快乐的Python编码!