2011-11-16 20 views
0

我不得不設置在HostMonster的一個簡單的Django項目: 項目名稱爲thep_viet,應用程序是mainapp 我的.htaccess是的Django不能在Hostmonster的運行

AddHandler fcgid-script .fcgi 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ django.fcgi/$1 [QSA,L] 

我django.fcgi是

#!/usr/bin/env python 
# -*- mode: python; -*- 

import sys, os 

# Add a custom Python path. 
sys.path.insert(0, "/home/riasolut/django/django_projects/") 

# Switch to the directory of your project. (Optional.) 
#os.chdir("/home/riasolut/django/django_projects/thep_viet") 

# Set the DJANGO_SETTINGS_MODULE environment variable. 
os.environ['DJANGO_SETTINGS_MODULE'] = "thep_viet.settings" 

from django.core.servers.fastcgi import runfastcgi 
runfastcgi(method="threaded", daemonize="false") 

我設置的python 2.7.2和1.3.1的Django成功地

我創建〜/ Django的/ django_projects /名爲thep_viet文件夾。該文件夾包含p_viet項目的所有源代碼。

我在public_html中創建了一個名爲thep_viet的文件夾,並將.htaccess和django.fcgi放在這裏。 當我跑步時通過命令行django.fcgi:

python ~/public_html/thep_viet/django.fcgi 

我得到的結果:

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! 
Status: 200 OK 
Content-Type: text/html 


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html lang="en"><head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8"> 
    <meta name="robots" content="NONE,NOARCHIVE"><title>Welcome to Django</title> 
    <style type="text/css"> 
    html * { padding:0; margin:0; } 
    body * { padding:10px 20px; } 
    body * * { padding:0; } 
    body { font:small sans-serif; } 
    body>div { border-bottom:1px solid #ddd; } 
    h1 { font-weight:normal; } 
    h2 { margin-bottom:.8em; } 
    h2 span { font-size:80%; color:#666; font-weight:normal; } 
    h3 { margin:1em 0 .5em 0; } 
    h4 { margin:0 0 .5em 0; font-weight: normal; } 
    table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; } 
    tbody td, tbody th { vertical-align:top; padding:2px 3px; } 
    thead th { padding:1px 6px 1px 3px; background:#fefefe; text-align:left; font-weight:normal; font-size:11px; border:1px solid #ddd; } 
    tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; } 
    ul { margin-left: 2em; margin-top: 1em; } 
    #summary { background: #e0ebff; } 
    #summary h2 { font-weight: normal; color: #666; } 
    #explanation { background:#eee; } 
    #instructions { background:#f6f6f6; } 
    #summary table { border:none; background:transparent; } 
    </style> 
</head> 

<body> 
<div id="summary"> 
    <h1>It worked!</h1> 
    <h2>Congratulations on your first Django-powered page.</h2> 
</div> 

<div id="instructions"> 
    <p>Of course, you haven't actually done any work yet. Here's what to do next:</p> 
    <ul> 
    <li>If you plan to use a database, edit the <code>DATABASES</code> setting in <code>thep_viet/settings.py</code>.</li> 
    <li>Start your first app by running <code>python thep_viet/manage.py startapp [appname]</code>.</li> 
    </ul> 
</div> 

<div id="explanation"> 
    <p> 
    You're seeing this message because you have <code>DEBUG = True</code> in your 
    Django settings file and you haven't configured any URLs. Get to work! 
    </p> 
</div> 
</body></html> 

這似乎使Django能夠effectly運行

但是,當我在瀏覽器中運行的我:

thepviet.mydomain.com 

與thepviet.mydomain.com指向mydomain.com/thep_viet

我收到了500錯誤:

<!-- SHTML Wrapper - 500 Server Error --> 
[an error occurred while processing this directive] 

我是不是忘了什麼東西?我在hostmonster的apache中配置fastcgi時出了點問題。

請幫我解決問題。


我讀過錯誤日誌,發現:

[Fri Nov 18 19:50:04 2011] [warn] [client 113.185.2.152] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server 
[Fri Nov 18 19:50:04 2011] [error] [client 113.185.2.152] Premature end of script headers: django.fcgi 
[Fri Nov 18 19:50:04 2011] [error] [client 113.185.2.152] invalid CGI ref "/500.php" in /home4/riasolut/public_html/500.shtml 

這是錯誤屬於FastCGI的服務器或我的代碼?

+0

錯誤日誌文件中可能有條目。這很可能有助於找到你的問題的答案。 –

回答

0

您的fcgi文件中的語法錯誤:

runfastcgi(method="threaded", "daemonize="false") 

的引號前daemonize不應該存在。

正如Jack M在評論中所說,如果您查看了服務器錯誤日誌,您幾乎肯定會在那裏看到錯誤。

+0

我已經修復了befor守護進程的引用,這是簡單的編輯錯誤。我閱讀錯誤日誌並查看錯誤: – ronin1184