我试图检查我的主机是否支持我的django网站所需的内容,所以我试图建立一个基本的django网站。 更复杂的是,我需要从同一台服务器运行另一个joomla页面(见下文)。 我不知道我做错了什么(最有可能的)以及我应该从主持人那里问什么。 (我知道我这是一个小菜鸟)
这是我到目前为止所拥有的: 在/ home / username /
中library-site /< - django files
公共HTML /
library< - virtual_env
(遵循指南我已将virtualenv的网站包符号链接到library_site / lib)
我必须说我已经尝试了很多指南,所以很难呈现整个图片,但这就是我现在所拥有的
在public_html / library / dispatch.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
中AddHandler fcgid-script .fcgi
Options +FollowSymLinks
RewriteEngine On
RewriteBase /library/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(dispatch\.fcgi/.*)$ - [L]
RewriteRule ^(.*)$ dispatch.fcgi/$1 [L]
像这样导航到http://example.com/library会显示文件夹的内容。单击dispatch.fcgi只显示python代码。
运行./dispatch.fcgi从返回正确的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
工作正常。有人可以帮忙吗?
答案 0 :(得分:0)
FCGI要求它与WSGI之间存在转换层。确保安装了flup并且您的FCGI文件是可执行的
Here is a guide大约两年前我就能开始工作了。
答案 1 :(得分:0)
我现在觉得有点愚蠢,因为答案真是微不足道。遵循本指南http://joemaller.com/1467/django-via-cgi-on-shared-hosting/我已将.fcgi放入cgi-bin并在public_html中编写了相应的.htaccess文件,并且......瞧!
作为将来尝试此操作的任何人感兴趣的一点,关于静态文件(更令人痛苦的是),我已将它们放入' public_html / library / static /& #39; (< - STATIC ROOT)使用绝对路径,然后我的STATIC_URL是' / lib_files / static /'。