有多种方法,关于如何使用apache运行基本的基本python脚本的在线教程或内容不清楚。
mod_python? cgi? wsgi?
是否需要使用python安装某些东西?
这真是令人困惑。我已经工作了几个小时了。
答案 0 :(得分:1)
流量
客户访问网页,例如http://example.com/mangojuice(问题1)。您的服务器(Apache)应该知道mangojuice是指/etc/www/superhightechjuice/mango.py。现在,应该执行此python文件(问题2)。 Apache应该知道.py应该被执行而不是简单地提供。但是Python不知道何时唤醒和运行。因此需要另一个实体(问题3)。
三个问题(界面)的解决方案由mod_wsgi处理: WSGI继承自CGI概念(用于执行perl脚本和php脚本),扩展为Python脚本(具有其他功能)。 mod_wsgi是Graham Dumpleton在Apache中实现它的方式,现在已成为标准。
代码
def application(environ, start_response):
status = '200 OK'
message = b"Hello World" #Prefix b is useful to convert string to bytestring, which is needed by HTTP
response_header = [('Content-type', 'text/html')]
start_response(status, response_header)
return [message]
原因
设置mod_wsgi时,它具有一个映射文件wsgi.conf 解决了问题1。它通过更新apache的.conf文件以及其他基于OS的设置来解决问题2。对于第3期,它告诉apache,每当我看到对'application'的引用时,我就是一个中间件,我会通知您,你们俩都可以交谈(Apache和Python)。这就是mod_wsgi的帮助方式。
设置mod_wsgi的步骤
sudo apt安装libapache2-mod-wsgi
apachectl重新启动
vi /etc/apache2/conf-available/wsgi.conf
WSGIScriptAlias / mangojuice /etc/www/superhightechjuice/mango.py
代码示例与上述相同。 start_response告诉mod_wsgi请求是传入的。 mod_wsgi与Apache进行对话,并让您的代码通过。
参考: