Php 在没有CGI的情况下部署Django?
我需要在一个共享服务器上部署一个Django项目,我没有根访问权限,也没有任何管理功能 服务器上的每个用户都有一个专用目录,Apache从中为这些用户提供文件(公共URL应该是Php 在没有CGI的情况下部署Django?,php,django,cgi,Php,Django,Cgi,我需要在一个共享服务器上部署一个Django项目,我没有根访问权限,也没有任何管理功能 服务器上的每个用户都有一个专用目录,Apache从中为这些用户提供文件(公共URL应该是/~username/) 问题是,此服务器上的Apache没有CGI功能,没有mod_python,没有mod_wsgi。不过,我可以使用PHP 我必须在这个服务器上部署Django项目,可能以某种方式使用PHP,这需要什么技巧 这绝不是一个生产场景,任何你能想到的可行的黑客都会很棒。忽略任何性能或可伸缩性因素-这只是一个
/~username/
)
问题是,此服务器上的Apache没有CGI功能,没有mod_python
,没有mod_wsgi
。不过,我可以使用PHP
我必须在这个服务器上部署Django项目,可能以某种方式使用PHP,这需要什么技巧
这绝不是一个生产场景,任何你能想到的可行的黑客都会很棒。忽略任何性能或可伸缩性因素-这只是一个POC。如果没有mod_python、mod_wsgi或fastCGI,您将无法直接完成 我在想,你可能需要做的是独立运行django应用程序,监听另一个端口,然后基本上使用PHP代理对它的请求 所以你做你的工作 python manage.py runserver 9999 python manage.py运行服务器9999 也许可以使用nohup启动它,以便在注销时保持其运行: nohup python manage.py runserver 9999 & nohup python manage.py runserver 9999& 然后,在~username中,生成一个proxy.php脚本,该脚本接受任何其他路径信息,并向localhost:9999发出请求,传递HTTP头,收集响应,然后将其发送回浏览器 例如,浏览器请求和PHP脚本请求并发送结果 我不是一个PHP程序员,所以我不能确切地告诉您如何编写,但我确信一定有人在PHP中实现了HTTP代理 如果您在该目录中有.htaccess支持,并且apache启用了mod_proxy_http,那么您可以让apache直接代理请求。这个方法很容易理解。但是如果他们没有启用CGI,他们可能也没有设置CGI 当然,最简单的事情是,如果您可以在面向公众的端口上运行和监听django,然后直接访问它。即 python manage.py runserver example.com:9999 python manage.py runserver example.com:9999
并直接访问它,因为您的服务器上安装了python吗?很明显,我的服务器上安装了python,而我的
PYTHONPATH
上安装了Django。