0

bdbxml に接続する 'mysite' という python/django アプリケーションがあります。アプリケーションは、django 開発サーバーを使用して正常に動作しますが、mod_wsgi を使用して実行すると失敗します。具体的には、データベースに接続するアプリケーションの部分で、「最終的に」「不良な例外が発生します」という非常に役に立たないメッセージで失敗します。

このエラーは、他に生成するエラー メッセージがない場合に 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 ファイル (Graham 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>

この問題を解決する方法を知っている人はいますか?

ありがとう

アップデート

問題がデータベースのアクセス許可に関連している可能性があるという以下の Graham 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
4

1 に答える 1

0

完全な再インストールを行った結果、グラハムのコメントが的を射ていて正しいことを確認できました。この問題は権限に関連していました。

Apache プロセスが、アプリケーションとデータベース ファイルを含むディレクトリの所有者になると、すべてが機能し始めました。

$chown -R apache:apache /wsgi

ありがとう!

于 2012-11-05T09:12:24.750 に答える