Django在共享主机中使用fcgi

2024-04-24 02:57:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试检查我的主机是否支持我的django站点所需的,所以atm我正在尝试建立一个基本的django站点。 更复杂的是,我需要在同一个服务器上运行另一个joomla页面(见下文)。 我不知道我是不是做错了什么事(很有可能),我应该向主持人问些什么。(我知道我在这件事上有点无足轻重)

以下是我目前所掌握的情况: 在/home/username/中

  1. 库网站/<;--django文件

    • 图书馆/
      • 在管理.py在
      • 图书馆/
        • 在设置.py在
        • 。。。在
  2. 公共html/

    • cgi箱
    • 文件夹_包含_joomla_站点
    • library<;--文件夹_id_like_to_use_for_my_页面
  3. 库<;--虚拟环境

    • 垃圾箱
    • 。。。在

(根据指南,我将virtualenv的站点包符号链接到library_site/lib)

我不得不说,我试过很多指南,所以很难呈现出整个图片,但我现在所拥有的

在公共html/库中/调度.fcgi在

#!/home/username/library/bin/python

import sys
import os

sys.path.insert(0, "/home/username/library/bin/python")
sys.path.append('/home/username/library/lib/python2.6/site-packages')
sys.path.insert(13, "/home/username/public_html/library")

open("/home/username/public_html/library/cgi.log", "w").write("Before try")

try:
    os.environ['DJANGO_SETTINGS_MODULE'] = 'lib.settings'
    from django.core.servers.fastcgi import runfastcgi
    runfastcgi(method="threaded", daemonize="false")
except Exception:
    open("/home/username/public_html/library/cgi.log", "w").write(format_exc())
    raise

在public\html/library/.htaccess中

^{pr2}$

像这样导航到http://example.com/library将显示文件夹的内容。点击调度.fcgi只显示python代码。在

跑步/调度.fcgifrom返回正确的django输出,但前四行读取

WSGIServer: missing FastCGI param REQUEST_METHOD required by WSGI!
WSGIServer: missing FastCGI param SERVER_NAME required by WSGI!
WSGIServer: missing FastCGI param SERVER_PORT required by WSGI!
WSGIServer: missing FastCGI param SERVER_PROTOCOL required by WSGI!

这些都告诉我,我需要问主人一些事情,但我不知道在这一点上。在

还有,跑步

python ~/library_site/lib/manage.py runfcgi daemonize=false host=127.0.0.1 port=3033 maxrequests=1

这里建议:https://twiki.cern.ch/twiki/bin/view/ITCF/DjangoGeneral不返回任何问题。在

最后,启动django服务器:

python manage.py runserver 0.0.0.0:8000

工作正常。谁能帮忙吗?在


Tags: djangopyhomeparam站点libhtmlsys
2条回答

FCGI要求在它和WSGI之间有一个转换层。确保安装了flup,并且FCGI文件是可执行的

我大约两年前就开始工作了。在

我现在觉得有点傻,因为答案实在微不足道。按照这个指南http://joemaller.com/1467/django-via-cgi-on-shared-hosting/我把.fcgi放在cgi-bin中,并用public-html和…Voila编写了相应的.htaccess文件!在

对于将来尝试此操作的人来说,对于静态文件(这更令人头疼),我使用绝对路径将它们放在“public\uhtml/library/static/”(<;static ROOT)中,然后我的静态URL为“/lib\ufiles/static/”。在

相关问题 更多 >