运行像PHP这样的Python脚本
服务器上有Apache2+mod_wsgi+Python2.6 我希望像PHP脚本一样从Python运行脚本。这个想法可能看起来很傻,但我已经习惯了(至少在开始学习Python时是这样) 例如: PHP- 蟒蛇- 另外,我知道mod_重写和其他类似的技巧可以做到这一点。但这只是一种伪装,而不是直接运行 UPD:My.htaccess文件。py可以工作,但其他python脚本会出现404错误运行像PHP这样的Python脚本,php,python,apache,wsgi,Php,Python,Apache,Wsgi,服务器上有Apache2+mod_wsgi+Python2.6 我希望像PHP脚本一样从Python运行脚本。这个想法可能看起来很傻,但我已经习惯了(至少在开始学习Python时是这样) 例如: PHP- 蟒蛇- 另外,我知道mod_重写和其他类似的技巧可以做到这一点。但这只是一种伪装,而不是直接运行 UPD:My.htaccess文件。py可以工作,但其他python脚本会出现404错误 <Files *.py> SetHandler wsgi-script Options Exe
<Files *.py>
SetHandler wsgi-script
Options ExecCGI FollowSymLinks
</Files>
DirectoryIndex index.py
SetHandler wsgi脚本
选项ExecCGI FollowSymLinks
DirectoryIndex.py
这看起来不像运行wsgi应用程序那么酷,因此我建议您使用尽可能简单的sane框架
这里有一个链接描述了
以后,你可能想考虑一个很酷的框架,比如Django,皮拉米德,GROK……/P>
如果您真的想使用mod_wsgi,比如mod_php,请查看Graham Dumpleton的精彩答案。从技术上讲,您所做的应该是可行的,但请参阅以下中配置mod_wsgi的AddHandler方法: 这样你就不必摆弄文件了 SetHandler做了类似的事情,但上下文中的所有文件都被视为WSGI脚本文件,即使它们可能是静态HTML或PHP文件。您没有受到影响,因为它符合文件的要求,但最好只使用AddHandler 请注意,重新加载代码不会像使用PHP时那样工作。见:
我使用 这里是Apache的一个示例。要使用的cgi接口由Python.org提供 我用过的第二个好东西是一旦你开始跑步 我要补充的是,有一种类似的方式来配置Apache 步骤1:上述指南中未提及的第一步是在apache中启用CGI处理
sudo a2enmod cgi
如果您的服务器配置了多线程MPM,这将自动启用mod_cgid,我就是这样
步骤2:编辑httpd.conf或在/etc/apache2/sites enabled中命名的任何文件
在LinuxMint19.2中
为/使用index.py启用脚本
<VirtualHost *:80>
DocumentRoot /your/www/html
DirectoryIndex index.py
</VirtualHost>
DocumentRoot/your/www/html
DirectoryIndex.py
步骤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/
不允许超限
选项+执行CGI-多视图+符号链接所有者匹配
命令允许,拒绝
通融
AddHandler cgi脚本.py
AddHandler default handler.jpg.png.gif.css.js.ico
ScriptAlias//your/www/html/
为了成功运行python脚本,我遇到了两个必须遵守的警告
在Linux Mint 19.2中,我右键单击文件,转到属性,转到权限, 然后选中Execute:Allow executing program as file处的复选框。或者只是 运行以下命令:
chmoda+xpython\u script.py
快乐的Python编码 我在什么地方写过关于mod_python的文章?我知道他已经过时了。。。WSGI运行脚本只有一个要点?我想我看错了这篇文章。我认为您不能使用WSGI进行配置。我正在给我的答案添加一个相关链接。说“它希望通过套接字连接到正在运行的WSGI进程”是完全错误的。它不像您想象的那样工作。WSGIScriptAlias的工作方式我不喜欢.WSGIScriptAlias实际上是每个人使用的方式,因为人们通常使用某种描述的框架。非常不鼓励您从头开始编写WSGI内容,因为它太容易出错。如果它对其他.py URL不起作用,那么在Apache配置的其余部分可能会发生其他事情,这可能会影响它。