【问题标题】:Python + mod_wsgi/mod_python + Apache + user's public_htmlPython + mod_wsgi/mod_python + Apache + 用户的 public_html
【发布时间】:2013-07-17 17:58:59
【问题描述】:

我对制作一个非常基本的 Python webapp 很感兴趣,实际上只是一个接受一些输入的表单,在该输入上调用一个 Python 函数,接收从该函数返回的结果,然后使用 Web 开发技巧使它们看起来漂亮的。我见过许多使用 CherryPy、flask、bottle、web.py 的解决方案,所有这些都很棒,但我还没有看到任何一个实际使用 Apache 的示例。它们似乎都是这个一体化的 Web 服务器框架,这对我来说完全是多余的,而不是我需要的。我已经在这里运行了 Apache,因此与其启动第二个 Web 服务器并担心保持其运行,我宁愿让 Apache 整天为我的应用程序以及其他所有东西提供服务。

我们有相当标准的http://myserver.com/~user/ 设置和/home/user 中的public_html 目录,但是对于我的生活,我无法弄清楚如何创建一个调用 Python 函数的页面,该函数提供并具有Python 代码在浏览到http://myserver.com/~user/ 时实际执行。让我们暂时假设mod_python 甚至mod_wsgi 设置正确......我需要做什么?我是否需要通过 PHP exec() 调用我的脚本,这对我来说首先满足了对 mod_python 的需求,还是有更优雅的解决方案(实际上使用 mod_python)?

【问题讨论】:

    标签: python apache mod-wsgi mod-python


    【解决方案1】:

    你对 python 脚本的概念是完全错误的。不要把它们当作你可以拥有的 PHP 脚本来对待

    <html>
    <?php
    echo "<title>Hello World</title>";
    ?>
    </html>
    

    mod_php 将解析它并执行 php 代码以形成最终的 html 页面。

    最好说你有 python 应用程序,其中 mod_pythonmod_wsgi 为 apache 与你的应用程序通信提供接口(网关)。

    我被问过很多次,是否可以编写没有框架的 Python Web 应用程序。当然可以,但是您必须处理 HTTP 会议和诸如标头和响应代码之类的骨头。看http://lucumr.pocoo.org/2007/5/21/getting-started-with-wsgi/

    所以我建议使用框架。

    如果您不想像 deamon 那样运行您的应用程序,请查看,例如,此页面 http://flask.pocoo.org/docs/deploying/mod_wsgi/。它展示了如何使用 apache 和 mod_wsgi 运行烧瓶应用程序。

    【讨论】:

    • 感谢您的链接。我知道它与 PHP 不完全一样,但是从所有这些带有框架的示例中,我知道可以调用 Python 函数而不用 PHP 甚至 ajax 包装它。不过,我有一个问题,来自第二个链接……配置是全局的,对吗?所以这一行:WSGIScriptAlias / /var/www/yourapplication/yourapplication.wsgi 需要为每个~user 的每个应用程序添加,对,类似于/home/user/public_html/yourapplication/yourapplication.wsgi
    • 只需使用WSGIScriptAliasMatchcode.google.com/p/modwsgi/wiki/…。这样您就无需配置每个应用程序。
    • 明白了。我会确保我们的系统管理员已经设置好了。非常感谢。 :)
    • 除非您有充分的理由,否则请不要使用 WSGIScriptAliasMatch。您不需要它来满足他们的建议,并且在使用它时存在一些陷阱。请参阅code.google.com/p/modwsgi/wiki/ConfigurationGuidelines 中的详细信息,了解使用 AddHandler 的更好方法。
    • @GrahamDumpleton 感谢您的留言。我绝对忽略了 wsgi 脚本的 WSGIScriptAlias /wsgi/ /path/to/wsgi/scripts/ 表单和 SetHandler/AddHandler 指令。但是你说的陷阱是什么?至于我SetHandler/AddHandler是配置mod_rewrite的更多负担。我就是不喜欢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 2011-01-26
    相关资源
    最近更新 更多