我花了很多时间试图解决这个问题。我基本上试图开发一个网站,当用户点击特定按钮时我必须执行python脚本。在研究Stack Overflow和Google之后,我需要配置Apache才能运行CGI脚本。我已经看到了许多可以实现此目的的软件示例,例如mod_wsgi。问题是我对这些软件的说明非常困惑,尤其是mod_wsgi。我根本不理解这些说明,我无法安装软件并获得任何工作。
如果有人有一个非常简单的方法在Apache中执行python脚本,我将不胜感激。如果有人想解释如何使用mod_wsgi,我会非常感谢,因为我现在不知道如何使用它,安装说明让我感到困惑。
答案 0 :(得分:0)
正如你所说的那样,一种方式,不是那么容易,而是以某种方式简单,就是使用CGI。 您可以在Apache documentation和Python CGI module documentation找到更多信息。
但是,基本上,您必须将服务器设置为运行cgi sripts。这可以通过编辑httpd.conf或.htaccess文件来完成: 对于第一个选项,添加或取消注释以下内容:
LoadModule cgi_module modules/mod_cgi.so
ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/ # update the second location according to your configuration. It has to be a place where apache is allow to use, otherwise see apache documentation for setting another directory.
然后,您只需要在上面设置的目录中添加python脚本。
请注意,正如Apache文档所说,脚本的输出必须以mime-type标头开头。
因此,hello world脚本可以命名为hello.py,其内容可以是:
#!/usr/bin/python
print('Content-type: text/html') # the mime-type header.
print() # header must be separated from body by 1 empty line.
print('Hello world')
然后,您可以通过浏览器调用您的scrit:
http://localhost/cgi-bin/hello.py
请注意,Python在其cgi实现的内置模块中有一些好处。 cgi模块将为您提供一种处理表单的方法,而cgitb将为您提供一种有用(但不是完美)的调试脚本的方法。有关更多信息,请再次阅读文档。
最后,直接使用cgi运行python脚本为您提供了处理http请求的原始方法。有很多已经完成的框架,比如flask和django,可以让你轻松获得更多功能。你可以检查一下。