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

如何使用Apache从根本上运行python脚本?,python,apache,web,Python,Apache,Web,关于如何使用apache运行基本的python脚本,有多种方法,但没有明确的教程或任何在线内容 mod_python?cgi?wsgi python是否需要安装一些东西 真让人困惑。我已经做了几个小时了。Flow 客户端访问一个网页,比如(问题1)。您的服务器(apache)应该知道mangojuice引用/etc/www/superhightechjuice/mango.py。现在应该执行这个python文件(问题2)。Apache应该知道.py应该被执行,而不是直接提供。但是Python不知

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

mod_python?cgi?wsgi

python是否需要安装一些东西

真让人困惑。我已经做了几个小时了。

Flow

客户端访问一个网页,比如(问题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-进行映射的Conf文件-/etc/apache2/Conf available/wsgi.Conf
  • 问题2-安装mod_wsgi-在安装过程中,它更新apache配置文件,以通知应执行.py;还有很多其他的东西
  • 问题3-功能-应用
  • 代码

    原因

    当您设置mod_wsgi时,它通过拥有一个映射文件wsgi.conf来解决问题1。它通过更新apache的.conf文件以及其他基于操作系统的设置来解决问题2。对于问题3,它告诉apache,我是一个中间件,每当我看到对'application'的引用时,我都会通知您,您可以交谈(apache和Python)。这就是mod_wsgi的帮助

    设置mod_wsgi的步骤

  • 为Apache2安装mod_wsgi sudo apt安装libapache2 mod wsgi

  • 重新启动Apache以刷新所有更新 apachectl重启

  • 创建映射文件 vi/etc/apache2/conf可用/wsgi.conf

  • 使用url和本地路径更新映射文件 WSGIScriptAlias/mangojuice/etc/www/superhightechjuice/mango.py

  • 在/etc/www/superhightechjuice/mango.py创建实际代码 代码示例与上面提到的相同。启动响应告诉mod_wsgi请求正在传入。mod_wsgi与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]