0

我想在我的項目中使用django-social-auth。 它在我的本地計算機上運行良好(使用manage.py runserver),但在我的主機(locum.ru)服務器上失敗(使用mod_wsgi)。django-social-auth錯誤500:腳本標題提前結束:django.wsgi

我看到這在我的Django的日誌服務器上:

[2012-06-26 22:19:24,796] DEBUG [django.db.backends:44] (0.000) SET FOREIGN_KEY_CHECKS=0;; args=() 
[2012-06-26 22:19:24,817] DEBUG [django.db.backends:44] (0.000) SELECT `django_session`.`session_key`, `django_session`.`session_dat 
a`, `django_session`.`expire_date` FROM `django_session` WHERE (`django_session`.`session_key` = 392a94a6d2a667ff755a9d45a79582d0 AN 
D `django_session`.`expire_date` > 2012-06-26 22:19:24); args=('392a94a6d2a667ff755a9d45a79582d0', u'2012-06-26 22:19:24') 
[2012-06-26 22:19:24,857] DEBUG [myapp.context_processors:11] Adding something to context. 

(myapp.context_processors只是一個簡單的背景處理器,什麼也不做只是通知我,這就是所謂的)

而這錯誤.LOG:

[Tue Jun 26 22:19:24 2012] [error] [client 34.34.34.34] Premature end of script headers: django.wsgi 

當我把我的settings.py一切工作良好的Django的社會權威性了。當我打開它 - 失敗!

我有python 2.7.3本地和服務器上的python 2.6.6(但它沒有社會認證,所以它不是問題,我認爲...)和Django 1.3.1。

任何人都可以給我一個暗示在哪裏挖?

UPD:我加了一些記錄,現在我看到,它的導入失敗從social_auth:

logger.debug('Before import from social_auth') 
from social_auth.views import complete, auth, disconnect 
logger.debug('After import from social_auth') 

「導入前...」出現在調試日誌「後......」沒有按「T。但它適用於我的本地桌面!魔術在哪裏?

UPD2:我增加了一些記錄到social_auth,現在我看到social_auth進口的python-openid的,openid.yadis.extrd運行此行:

from openid.oidutil import importElementTree 
ElementTree = importElementTree() 

和importElementTree()包含:

for mod_name in module_names: 
    try: 
     logger.debug('importElementTree - 2 - ' + mod_name) 
     ElementTree = __import__(mod_name, None, None, ['unused']) 
     logger.debug('importElementTree - 3 - ' + mod_name) 
    except ImportError: 
     logger.debug('importElementTree - except ImportError') 
     pass 

在日誌文件出現:

[2012-06-30 09:18:51,186] DEBUG [shoplist:39] In openid.yadis.extrd - 5 
[2012-06-30 09:18:51,186] DEBUG [shoplist:56] importElementTree 
[2012-06-30 09:18:51,186] DEBUG [shoplist:61] importElementTree - 1 
[2012-06-30 09:18:51,186] DEBUG [shoplist:64] importElementTree - 2 - lxml.etree 

因此,它無法導入lxml.etree,但不會拋出ImportError。爲什麼? 我檢查了我在本地計算機和服務器上有相同版本的django-social-auth,python-openid和python-lxml。它仍然沒有在服務器上工作!

回答

0

表示您可能使用守護進程模式位進程崩潰。如果你不能看到主要的Apache錯誤日誌,只有虛擬主機,你可能無法看到崩潰消息。

看看你是否可以強制應用程序在進程中的主要解釋器中運行,而不是在一個子解釋器中運行。

http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Python_Simplified_GIL_State_API

+0

WSGIApplicationGroup%{}全球必須在阿帕奇.conf文件使用?但我無法在虛擬主機上達到apache配置:( – kotslon

+0

)如果子解釋器的用法是問題,那麼除非您可以讓您的主機服務爲您更改配置,否則您將無法執行任何操作。在.htaccess文件中,還是託管服務甚至禁止,並且只允許您將.wsgi或.py文件放在指定的目錄中? –

+0

「僅允許您放入.wsgi或。py文件在指定的目錄中「 - 確切地說,我只能編輯我的wsgi和.py文件。 – kotslon

相關問題