如何使用Apache从根本上基本运行python脚本?

时间:2018-09-11 21:59:34

标签: python apache web

有多种方法,关于如何使用apache运行基本的基本python脚本的在线教程或内容不清楚。

mod_python? cgi? wsgi?

是否需要使用python安装某些东西?

这真是令人困惑。我已经工作了几个小时了。

1 个答案:

答案 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中实现它的方式,现在已成为标准。

  1. 问题1-执行映射的Conf文件-/etc/apache2/conf-available/wsgi.conf
  2. 问题2-安装mod_wsgi-在安装过程中,它将更新apache配置文件以通知应执行.py。以及其他许多东西
  3. 问题3-功能-应用程序

代码

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的步骤

  1. 为Apache2安装mod_wsgi
      

    sudo apt安装libapache2-mod-wsgi

  2. 重新启动Apache以刷新所有更新
      

    apachectl重新启动

  3. 创建映射文件
      

    vi /etc/apache2/conf-available/wsgi.conf

  4. 使用url和本地路径更新映射文件
      

    WSGIScriptAlias / mangojuice /etc/www/superhightechjuice/mango.py

  5. 在/etc/www/superhightechjuice/mango.py中创建实际代码
      

    代码示例与上述相同。 start_response告诉mod_wsgi请求是传入的。 mod_wsgi与Apache进行对话,并让您的代码通过。

参考

Official mod_wsgi documentation