2012-08-15 5 views
0

bdbxml에 연결하는 Python/django 응용 프로그램 'mysite'가 있습니다. 응용 프로그램을 django 개발 서버를 사용하여 잘 작동하지만 아파치 mod_wsgi를 사용하여 실행할 때 실패 - 생산을 위해 선택한 경로. 특히 매우 도움이되지 않는 메시지로 실패한 데이터베이스에 연결하는 응용 프로그램의 부분입니다. 'finally'는 잘못된 예외를 나타냅니다.berkeley dbxml django mod_wsgi가 오류와 함께 작동하지 않습니다. 'finally'가 나쁜 예외를 나타냅니다.

나는이 오류가 생성 할 다른 오류 메시지가 없을 때이 오류가 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 파일 (그레이엄 Dumpleton에서 제안 된 형식을 사용하여)는 다음과 같습니다

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> 

누구든지이 문제를 해결하는 방법을 알고 있습니까?

감사

업데이트 문제가 데이터베이스에 대한 사용 권한에 링크 될 수 있음을 아래 그레이엄 Dumpleton에 의해 제안에 따라

, 여기에 디렉토리 데이터베이스에 대한 사용 권한을 보여주는 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가 실행되는 사용자에게 필요한 모든 파일/디렉토리를 읽고 쓸 수 있습니까? –

+0

예, 모든 파일에 755가 있다고 말할 수 있습니다. – AnotherLongUsername

+0

하지만 누가 소유하고 있습니다. 아파치가 소유하지 않은 u + w 및 디렉토리/파일 만있는 경우 쓰기가 가능하므로 데이터베이스를 사용할 때 파일 시스템에 잠금 파일을 만들지 못할 수 있습니다. 데이터베이스가있는 디렉토리에 대해 'ls -las'의 출력으로 문제를 제기하십시오. –

답변

0

완전히 다시 설치 한 후 Graham의 의견이 정확하고 정확하다는 것을 확인할 수있었습니다. 이 문제는 권한과 관련이 있습니다.

일단 아파치 프로세스가 응용 프로그램과 데이터베이스 파일을 포함하는 디렉토리의 소유자가되면 모든 작업이 시작됩니다.

$chown -R apache:apache /wsgi 

고마워요!