【问题标题】:How do I use Apache to just basically fundamentally run a python script?我如何使用 Apache 基本上从根本上运行 python 脚本?
【发布时间】:2019-02-16 11:30:28
【问题描述】:

关于如何使用 apache 运行基本的基本 python 脚本有多种方法,但没有明确的教程或任何在线内容。

mod_python? cgi? wsgi?

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

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

【问题讨论】:

    标签: python apache web


    【解决方案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 文件 以及其他基于操作系统的设置来解决问题 2。对于问题 3,它告诉 apache,当我看到对 'application' 的引用时,我是一个中间件,我会通知你,并且你们都可以交谈(Apache 和 Python)。这就是 mod_wsgi 的帮助。

    设置 mod_wsgi 的步骤

    1. 为 Apache2 安装 mod_wsgi

      sudo apt install 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

    【讨论】:

      猜你喜欢
      • 2014-11-04
      • 1970-01-01
      • 1970-01-01
      • 2019-05-14
      • 2011-09-22
      • 2015-02-18
      • 2014-09-13
      • 1970-01-01
      • 2018-04-22
      相关资源
      最近更新 更多