2012-07-03 66 views
4

如何在共享主机中设置Django网站? 我检查Django的安装,它是确定在共享主机上设置Django网站

>>> import django 
>>> django.VERSION 
>>> (1, 4, 0, 'final', 0) 

我已经按照http://www.djangobook.com/en/2.0/chapter12/节上与Apache共享主机提供商都无济于事运行Django。目前,该网站是这样

/home/django_projects/WebsiteName 
/sites/WebsiteName.co.id/www/.htaccess 
/sites/WebsiteName.co.id/www/dispatch.fcgi 

.htaccess文件是这样

AddHandler fastcgi-script .fcgi 

RewriteEngine On 
RewriteBase/
RewriteRule ^(media/.*)$ $1 [QSA,L] 
RewriteRule ^(admin_media/.*)$ $1 [QSA,L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ dispatch.fcgi/$1 [QSA,L] 

和dispatch.fcgi是这样

#!/usr/bin/python 
import sys, os 
sys.path = ['$HOME/lib/python/Django-1.4'] + sys.path 
sys.path = ['$HOME/django_projects'] + sys.path 

os.chdir("$HOME/django_projects") 
#from flup.server.fcgi import WSGIServer 
from django.core.servers.fastcgi import runfastcgi 

os.environ['DJANGO_SETTINGS_MODULE'] = 'WebsiteName.settings' 
runfastcgi(["method=threaded", "daemonize=false"]) 

它不断产生错误500,内部错误当我访问该网站时。我到目前为止所尝试的是,

[1] Changing AddHandler fastcgi-script .fcgi to AddHandler fcgid-script .fcgi 
[2] Removing AddHandler fastcgi-script .fcgi 
[3] Putting the website directory to /sites/WebsiteName.co.id/www/WebsiteName instead of /home/django_projects/WebsiteName/ 
[4] Do no. 3 and move dispatch.fcgi to /sites/WebsiteName.co.id/www/WebsiteName 

对不起,如果这个问题太愚蠢了。我是Django的新手。顺便说一句,没有1-4是不是为了。这只是为了将迄今为止我尝试过的东西编号。如果我不这样做。 4,网站显示dispatch.fcgi的内容。

+0

在共享主机上,提供商可能会有更改安全性,限制等内容。尝试联系他们获取配置帮助 –

+1

他们是否允许您访问网址的错误日志?这将是解决问题的最佳方法。 Apache error.log应该显示到底发生了什么问题。我正在编写一个Python共享主机平台,这是我在这些情况下必须考虑的第一件也是最后一件事。 – aychedee

+0

.htaccess和dispatch.fcgi没有明显的错误吗? –

回答

1

在共享主机上使用mod_wsgi更容易部署。我在Quijost上工作,我们在mod_wsgi下使用nginx作为后端提供了一个Django 1.4和Python 2.7的内置包。 我们在mod_wsgi的论坛中写了一个small tutorial,可能它对于fastcgi的例子很有用。从GoDaddy的

+1

该论坛是在西班牙语和链接不再起作用。 –

+0

该论坛是在线的,但对于更高版本的Django可能会有所不同 – shakaran

0

响应已从this thread

“的FastCGI是从Python脚本为我们的Linux主机 帐户访问我们不允许,不过,除了自定义的FastCGI的 处理器在我们共同的托管帐户“。

所以我觉得你几乎不走运。就我而言,尽管我试图说服客户拥有webfaction帐户是一个好主意,因为它支持mod_wsgi。