2012-09-15 31 views
3

我覺得這可能是一個很簡單的問題,但我想使用Python/Django的,所以我可以建立我的家人一些簡單的博客網站要學會代碼,不能讓我的網站部署在Hostmonster上。我覺得我越來越近,但我堅持了以下錯誤:部署在Hostmonster的一個Django項目使用FastCGI

Using the URLconf defined in newproject.urls, Django tried these URL patterns, in this order: ^admin/ The current URL, , didn't match any of these.`

我花了大量的時間搞清楚如何加載蟒蛇,Django的,等我的共享HostMonster的帳戶,和思想我擁有了一切想通了,當我裝一個普通的,未經修改的Django newproject,並得到了Django的「成功了!」屏幕上,但只要我在註釋掉和urls.py settings.py使管理模塊的線,我卡住並出現上述錯誤。

這裏是我的.htaccess文件:

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(www.)?mysite.com$ 
RewriteCond %{REQUEST_URI} !^/mysite/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /mysite/$1 
RewriteCond %{HTTP_HOST} ^(www.)?mysite.com$ 
RewriteRule ^(/)?$ /mysite/jarr.fcgi [QSA,L] 

,這裏是我的jarr.fcgi文件: 「它的工作」

#!/home3/usr/python/bin/python 
import sys, os 
sys.path.insert(0, "/home3/usr/django/django_projects/newproject") 
sys.path.insert(0, "/home3/usr/python") 
sys.path.insert(0, "/home3/usr/python/lib") 
sys.path.insert(0, "/home3/usr/python/lib/python2.7") 
sys.path.insert(0, "/home3/usr/python/lib/python2.7/site-packages") 
sys.path.insert(0, "/home3/usr/django/django_src") 
os.environ['DJANGO_SETTINGS_MODULE'] = "newproject.settings" 
from django.core.servers.fastcgi import runfastcgi 
runfastcgi(method="threaded", daemonize="false") 

這麼折騰,最終得到的從工作周後,我的賬戶HostMonster的,但後來我甚至不能讓管理員更談不上建立一個實際的網站,這是我的本地機器上那麼容易。任何建議將非常感激。

+0

你能找到解決方案嗎?我面臨與godaddy共享主機相同的問題:http://stackoverflow.com/questions/14310086/django-on-shared-hosting-setup-issue-404-for-the-admin-url-urls-py-being -ignor – alok

回答

1

注意的錯誤消息:

The current URL, , didn't match any of these.` 

這意味着Django的是沒有得到任何URI信息。原因是這樣的一行:

RewriteRule ^(/)?$ mysite/jarr.fcgi [QSA,L] 

注意,可能會導致fcgi腳本要調用的唯一的事情就是逛「指數」,甚至是那麼沒有URI信息中給出。 你會想你的RewriteRule是像

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

(重要的部分是/$1

嘗試移動jarr.fgci到您的域的公共「根」(即不mysite下)和改變你的規則是:

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

你仍然可以把目錄中的文件被由阿帕奇直接服務。