【问题标题】:Python cgi on OpenShiftOpenShift 上的 Python cgi
【发布时间】:2015-11-11 21:17:41
【问题描述】:

我刚刚安装了 python3.3 墨盒,我将我的“hello.py”文件推送到了与在浏览器中运行我的应用程序时始终打开的 wsgi.py 文件相同的文件夹中。我还在 wsgi.py 中创建了一个指向我的 hello.py 页面的链接。

但是当我点击链接时没有任何反应。

openshift 无论如何都可以运行普通的 cgi(所以没有烧瓶、django、wsgi ......)?我也听说过很多这个 .htacces 文件,所以也许我应该添加/编辑那个文件?

我的静态 html 页面链接也不起作用。

感谢您对此的任何帮助。

【问题讨论】:

    标签: python cgi openshift wsgi


    【解决方案1】:

    您将无法像这样将任意 .py 文件放到顶级目录中,并将它们作为 CGI 脚本处理。

    为什么您特别需要 CGI?为什么不将其转换为使用 WSGI,它的性能会比 CGI 好很多。

    对于 Python 插件,使用标准 Apache 设置可能会有一种复杂的方法,但 CGI 脚本需要位于通常用于静态文件的子 URL 下。

    另一种方法是通过运行 mod_wsgi-express 并自定义设置方式来覆盖标准 Apache 设置。但是问题仍然存在,如果要运行 Python 代码,为什么要忽略一个非常好的 WSGI 服务器而使用 CGI。


    更新 1

    如果您不关心 URL 是什么,请将您的 CGI 脚本放在目录“wsgi/static”中。然后在同一目录中创建一个 .htaccess 文件,其中包含:

    Options +ExecCGI
    AddHandler cgi-script .cgi
    

    如果 CGI 脚本文件名为“hello.cgi”,则可以使用子 URL 访问它,并将其连接到适合您网站的 http://hostname。因此'http://hostname/static/hello.cgi'。

    【讨论】:

    • 好的,感谢关于将我现有的 cgi 应用程序转换为 wsgi 的建议。但是,我的主要问题是关于我的 python 似乎无法访问或被解释的事实?我还应该怎么做才能让它运行?
    • 所以您仍然希望能够运行您的 CGI 脚本?你在乎它在哪个 URL 下吗?
    • 我在 WSGI 和 Flask 上做了一些阅读,我将在接下来的几周内将现有应用程序转换为那些。我只是希望有一种简单的方法可以将我现有的 cgi 版本也部署到 Openshift。我已经找到了静态文件夹,所以也许我可以将它部署到那里......?哪个 URL 并不重要...
    • 添加了上面的更新 1。很可能通过使用 mod_rewrite 规则可以让它看起来驻留在不同的 URL 上,该规则在项目顶层目录中的 .htaccess 文件中执行内部服务器重定向,但我需要尝试来验证它。
    • 谢谢格雷厄姆。我会试试看!约翰
    猜你喜欢
    • 1970-01-01
    • 2014-07-06
    • 2023-04-05
    • 2015-03-28
    • 1970-01-01
    • 2013-12-22
    • 2017-03-09
    • 1970-01-01
    • 2018-05-13
    相关资源
    最近更新 更多