代码之家  ›  专栏  ›  技术社区  ›  Yuval Adam

在没有CGI的情况下部署Django?

  •  0
  • Yuval Adam  · 技术社区  · 14 年前

    我需要在一个共享服务器上部署一个Django项目,我没有根访问权限,也没有任何管理功能。

    服务器上的每个用户都有一个专用目录,Apache从中为这些用户提供文件(公共URL将是 /~username/

    问题是,这个服务器上的Apache没有CGI功能,没有 mod_python ,否 mod_wsgi . 我 但是,请使用PHP。

    在这个服务器上部署一个Django项目,可能使用PHP,我需要什么样的技巧?

    这是 一个生产场景,任何你能想到的可行的黑客都会很棒。忽略任何性能或可伸缩性因素—这只是一个POC。

    1 回复  |  直到 14 年前
        1
  •  2
  •   thraxil    14 年前

    没有mod\u python、mod\u wsgi或fastCGI,您将无法直接完成。

      python manage.py runserver 9999
    

    也许用nohup启动它,让它在您注销时继续运行:

      nohup python manage.py runserver 9999 &
    

    然后,在~username中,生成一个proxy.php脚本,该脚本获取任何其他路径信息并请求localhost:9999,传递HTTP头,收集响应并将其发送回浏览器。

    http://example.com/~username/proxy.php/some/path/ PHP脚本请求 http://localhost:9999/some/path/

    我不是一个PHP程序员,所以我不能确切地向您展示如何编写它,但我确信一定有人在PHP中实现了HTTP代理。

    如果该目录中支持.htaccess,并且apache启用了mod\u proxy\u http,则可以让apache直接代理请求。这个 documentation 很容易理解。但是如果他们没有启用CGI,他们可能也没有设置。

       python manage.py runserver example.com:9999
    

    直接访问 http://example.com:9999/