J'ai une application python/django, 'mysite', qui se connecte à bdbxml. L'application fonctionne bien en utilisant le serveur de développement django mais échoue lorsqu'elle est exécutée en utilisant mod_wsgi avec apache - mon itinéraire de production choisi. Plus précisément, ce sont les parties de l'application qui se connectent à la base de données qui échouent avec un message très inutile, 'enfin' apparaît une mauvaise exception. Je crois à partir de Google que cette erreur est une erreur générique qui est générée par les applications C++ quand il n'y a aucun autre message d'erreur à générer, mais je ne suis pas un expert C++ donc je ne sais pas vraiment ce que cela signifie.berkeley dbxml django mod_wsgi ne fonctionne pas avec l'erreur: 'finally' apparaît mauvaise exception
Ma fonction views.py ressemble à:
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())
mon fichier django.wsgi (en utilisant le format proposé de Graham Dumpleton) ressemble à:
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()
et httpd.conf ressemble à:
WSGIApplicationGroup %{GLOBAL}
WSGIScriptAlias//wsgi/mysite/apache/django.wsgi
<Directory /wsgi/mysite>
Order deny,allow
Allow from all
</Directory>
Est-ce que quelqu'un sait comment résoudre ce problème?
grâce
Mise à jour
Après suggestion de Graham Dumpleton ci-dessous que le problème peut être lié à des autorisations sur la base de données, voici la sortie de ls -Las affichant les autorisations sur le répertoire dans lequel la base de données est situé. Tous les fichiers et dossiers sont la propriété d'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
Tous les fichiers/répertoires requis sont-ils lisibles/modifiables par l'utilisateur sur Apache? –
oui, autant que je peux dire tous les fichiers ont 755 – AnotherLongUsername
Mais qui les possède. Si vous n'avez que u + w et que les répertoires/fichiers ne sont pas la propriété d'Apache, ils pourront écrire à leur place, donc ils ne pourront peut-être pas créer de fichiers de verrouillage dans le système de fichiers lors de l'utilisation de la base de données. Ammend question avec la sortie de 'ls -las' pour le répertoire où la base de données est. –