2012-08-15 22 views
0

我有一個python/django應用程序,'mysite',它連接到bdbxml。使用django開發服務器時,應用程序可以正常工作,但在使用帶有apache的mod_wsgi運行時失敗 - 我選擇的生產路線。特別是連接到數據庫的應用程序部分會失敗並顯示無用的消息,'finally'會彈出錯誤的異常。berkeley dbxml django mod_wsgi不能正常工作:'finally'彈出壞的異常

我相信從google使用這個錯誤是一個通用的錯誤,由C++應用程序生成時,沒有其他錯誤信息生成,但我不是一個C++專家,所以不真正知道這意味着什麼。

我views.py功能看起來像:

def dbquery(request): 
    mgr = XmlManager() 
    container = mgr.openContainer("/wsgi/mysite/mysite.bdbxml") 
    results = container.getAllDocuments(0) 
    for value in results: 
    document = value.asDocument() 
    return HttpResponse (document.getName()) 

我django.wsgi文件(使用格雷厄姆鄧普爾頓建議的格式)看起來像:

import os, sys 

sys.path.append('/wsgi') 
sys.path.append('/wsgi/mysite') 

import settings 

import django.core.management 
django.core.management.setup_environ(settings) 
utility = django.core.management.ManagementUtility() 
command = utility.fetch_command('runserver') 

command.validate() 

import django.conf 
import django.utils 

django.utils.translation.activate(django.conf.settings.LANGUAGE_CODE) 

import django.core.handlers.wsgi 

application = django.core.handlers.wsgi.WSGIHandler() 

和httpd.conf中的樣子:

WSGIApplicationGroup %{GLOBAL} 

WSGIScriptAlias//wsgi/mysite/apache/django.wsgi 

<Directory /wsgi/mysite> 
    Order deny,allow 
    Allow from all 
</Directory> 

有誰知道如何解決這個問題?

感謝

更新

格雷厄姆鄧普爾頓下面這個問題可能與權限的數據庫上提出以下建議,這裏是LS -LAS的顯示上的目錄數據庫所在的權限輸出位於。所有文件和文件夾都屬於apache。

4 drwxr-xr-x 5 apache apache 4096 May 5 06:26 . 
    4 drwxr-xr-x 3 apache apache 4096 May 4 22:09 .. 
    4 drwxr-xr-x 2 apache apache 4096 May 5 14:52 apache 
    4 -rw-r--r-- 1 apache apache  16 May 5 05:05 index.html 
    4 -rw-r--r-- 1 apache apache  12 May 5 04:52 index.html~ 
    0 -rw-rw-r-- 1 apache apache  0 May 4 22:09 __init__.py 
    4 -rw-r--r-- 1 apache apache 114 May 5 05:39 __init__.pyc 
    4 -rw-rw-r-- 1 apache apache 503 May 4 22:09 manage.py 
164 -rwxr-xr-x 1 apache apache 163840 May 5 05:23 mysite.bdbxml 
    4 drwxr-xr-x 2 apache apache 4096 May 5 05:26 scripts 
    8 -rw-rw-r-- 1 apache apache 5060 May 5 04:50 settings.py 
    8 -rw-rw-r-- 1 apache apache 5031 May 4 22:09 settings.py~ 
    4 -rw-r--r-- 1 apache apache 2784 May 5 05:39 settings.pyc 
    4 drwxr-xr-x 2 apache apache 4096 May 5 04:49 templates 
    4 -rw-rw-r-- 1 apache apache 639 May 5 05:32 urls.py 
    4 -rw-rw-r-- 1 apache apache 600 May 5 04:42 urls.py~ 
    4 -rw-r--r-- 1 apache apache 444 May 5 05:40 urls.pyc 
    4 -rw-r--r-- 1 apache apache 609 May 5 06:26 views.py 
    4 -rw-r--r-- 1 apache apache 609 May 5 06:26 views.py~ 
    4 -rw-r--r-- 1 apache apache 914 May 5 06:26 views.pyc 
+0

所有需要的文件/目錄對於Apache運行的用戶而言是可讀/寫的? – 2012-08-15 22:26:01

+0

是的,據我所知,所有文件都有755 – AnotherLongUsername 2012-08-16 13:17:37

+0

但誰擁有它們。如果您只有u + w和不屬於Apache的目錄/文件,則可以寫入它們,因此在使用數據庫時可能無法在文件系統中創建鎖定文件。對數據庫所在的目錄輸出'ls -las'表示疑問。 – 2012-08-16 22:24:34

回答

0

通過完整的重新安裝,我現在可以確認格雷厄姆的評論是正確的和正確的。這個問題與權限有關。

一旦apache進程成爲包含應用程序和數據庫文件的目錄的所有者,它就開始工作了。

$chown -R apache:apache /wsgi 

謝謝!