Interne serverfout op apache, mod_wsgi, django 1.4

Ik schrijf een django-site voor intern gebruik in mijn organisatie. Ik gebruik de testgestuurde aanpak voor het ontwikkelen van de site in deze handleiding omdat Ik denk dat dat een goede gewoonte is. Ik gebruik Ubuntu 12.04, en de apache-server en mod_wsgi uit de repositories. Mijn ontwikkeling vindt plaats in een virtualenv gemaakt met virtualenvwrapper.

Ik wil de site testen in omstandigheden die zo dicht mogelijk bij de productieserver liggen, dus probeer ik een lokale apache-server op mijn laptop te configureren met mod_wsgi, wat ik nog nooit eerder heb gedaan. Ik heb de relevante delen van de mod_wsgi en django docs en hebben deze video , die de problemen die ik had met bestandsrechten oplost. Maar ik schijn vast te zitten aan een laatste horde die de presentatie niet aanpakt - ik veronderstel omdat ik django 1.4 gebruik en het heeft betrekking op een eerdere versie maar ik weet het niet zeker. Ik ben vastbesloten om een ​​lokale apache-server te gebruiken in plaats van de django-ontwikkelingsserver, omdat de site moet worden gezocht, die ik hooiberg en apache solr wil doorstaan, en ik wil deze testen en eventuele problemen oplossen voordat ik deze implementeer.

Mijn wsgi.py-bestand is slechts de standaard django-versie. Na het trimmen van de docstring ziet het er als volgt uit:

import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "fugit.settings")

# This application object is used by any WSGI server configured to use this
# file. This includes Django's development server, if the WSGI_APPLICATION
# setting points here.
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

# Apply WSGI middleware here.
# from helloworld.wsgi import HelloWorldApplication
# application = HelloWorldApplication(application)

Mijn httpd.conf ziet er zo uit:

WSGIScriptAlias//var/www/djcode/fugit/fugit/fugit/apache/wsgi.py
WSGIPythonPath /var/www/djcode/fugit/fugit/fugit:/home/garry/.virtualenvs/fugit/lib/python2.7/site-packages




Order deny,allow
Allow from all


Wanneer ik localhost bezoek krijg ik de volgende foutmelding. Het lijkt op een PYTHONPATH-probleem, maar mijn kennis van de django-documentatie was dat regel twee in het httpd.conf hierboven dit had moeten verhelpen.

[Fri Dec 28 10:22:03 2012] [warn] mod_wsgi: Compiled for Python/2.7.2+.
[Fri Dec 28 10:22:03 2012] [warn] mod_wsgi: Runtime using Python/2.7.3.
[Fri Dec 28 10:22:03 2012] [notice] Apache/2.2.22 (Ubuntu) mod_wsgi/3.3 Python/2.7.3 configured -- resuming normal operations
[Fri Dec 28 10:22:05 2012] [error] [client 127.0.0.1] mod_wsgi (pid=3280): Target WSGI script '/var/www/djcode/fugit/fugit/fugit/apache/wsgi.py' cannot be loaded as Python module.
[Fri Dec 28 10:22:05 2012] [error] [client 127.0.0.1] mod_wsgi (pid=3280): Exception occurred processing WSGI script '/var/www/djcode/fugit/fugit/fugit/apache/wsgi.py'.
[Fri Dec 28 10:22:05 2012] [error] [client 127.0.0.1] Traceback (most recent call last):
[Fri Dec 28 10:22:05 2012] [error] [client 127.0.0.1]   File "/var/www/djcode/fugit/fugit/fugit/apache/wsgi.py", line 23, in 
[Fri Dec 28 10:22:05 2012] [error] [client 127.0.0.1]     from django.core.wsgi import get_wsgi_application
[Fri Dec 28 10:22:05 2012] [error] [client 127.0.0.1] ImportError: No module named django.core.wsgi
[Fri Dec 28 10:22:08 2012] [error] [client 127.0.0.1] mod_wsgi (pid=3279): Target WSGI script '/var/www/djcode/fugit/fugit/fugit/apache/wsgi.py' cannot be loaded as Python module.
[Fri Dec 28 10:22:08 2012] [error] [client 127.0.0.1] mod_wsgi (pid=3279): Exception occurred processing WSGI script '/var/www/djcode/fugit/fugit/fugit/apache/wsgi.py'.
[Fri Dec 28 10:22:08 2012] [error] [client 127.0.0.1] Traceback (most recent call last):
[Fri Dec 28 10:22:08 2012] [error] [client 127.0.0.1]   File "/var/www/djcode/fugit/fugit/fugit/apache/wsgi.py", line 23, in 
[Fri Dec 28 10:22:08 2012] [error] [client 127.0.0.1]     from django.core.wsgi import get_wsgi_application
[Fri Dec 28 10:22:08 2012] [error] [client 127.0.0.1] ImportError: No module named django.core.wsgi

Kan iemand me vertellen wat ik hier mis?

BEWERK:

Het lijkt erop dat ik een virtualenvwrapper-toestemmingsprobleem heb. Ik heb geprobeerd mijn virtualenvs te verplaatsen zoals voorgesteld door dit antwoord maar nu kan virtualenvwrapper zichzelf niet vinden. Ik krijg `[Errno 13] Toestemming geweigerd 'bij het proberen om initialisatiehaken te laden. Ik heb chmod 755 de nieuwe map maar geen dobbelstenen.

FURTHER BEWERK: I have side-stepped this issue by using nginx as a reverse proxy for gunicorn instead of deploying with Apache. It was set up and running smoothly in about half an hour.

1
ja ru de
Aan de bovenkant van uw wsgi-bestand voeg een projectpad toe, zie hier en laat het me weten als het werkt
toegevoegd de auteur Aamir Adnan, de bron
de traceback geeft ook aan dat de mod_wsgi.so is gecompileerd voor python 2.7.2 maar runtime gebruikt 2.7.3 . Zorg ervoor dat je de geldige mod_wsgi.so plaatst die is gecompileerd voor de python-versie die je gebruikt.
toegevoegd de auteur Aamir Adnan, de bron
Je kunt een virtualenv niet zomaar verplaatsen, je moet het opnieuw creëren.
toegevoegd de auteur Graham Dumpleton, de bron
Klaar, maar geen verandering, vrees ik.
toegevoegd de auteur cms_mgr, de bron
Het lijkt erop dat de compilatie niet overeenkomt een Ubuntu eigenaardigheid die niet mag een probleem veroorzaken . Ik denk dat ik hetzelfde probleem kan hebben dat dit antwoord is opgelost maar ik kan mijn virtualenv niet verplaatsen zoals het antwoord suggereert zonder virtualenvwrapper als een gek te klagen. Bedankt voor uw tijd hierover.
toegevoegd de auteur cms_mgr, de bron

Geen antwoorden

0