Seite 1 von 1
Webserver für Django konfigurieren?
Verfasst: Freitag 15. April 2011, 11:08
von djonny
Hi,
endlich habe ich meine erste Django Website lokal fertig, jetzt möchte ich sie natürlich online stellen.
Mein Problem dabei ist allerdings das mein Webserver nicht für Django ausgelegt ist.
Zurzeit besteht der Server aus einem Hostsystem(ProxMox) und einem OpenVZ Conatainer (Debian 6.0 mit IspCP).
Für Django hätte ich mir jetzt vorgestellt einen eigenen OpenVZ Container zu erstellen da IspCP nicht mit django zusammenarbeitet.
Jetzt wäre meine Frage ob ihr ein Hostingsystem kennt das mit Django Zusammenarbeitet oder ob es besser ist einfach Apache oder lighttpd ohne irgendein System aufzusetzen? bzw. gibt es irgendwo Tutorials?
tia jonny
Re: Webserver für Django konfigurieren?
Verfasst: Freitag 15. April 2011, 12:07
von Leonidas
djonny hat geschrieben:ob es besser ist einfach Apache oder lighttpd ohne irgendein System aufzusetzen? bzw. gibt es irgendwo Tutorials?
Würde ich so machen und ja, steht in der Django-Dokumentation beschrieben.
Re: Webserver für Django konfigurieren?
Verfasst: Dienstag 19. April 2011, 21:55
von djonny
So hab mich jetzt ein bisschen eingearbeitet allerdings komm ich bei einem bestimmten Punkt nicht weiter...
Also ich hab in einem Buch eine Anleitung gelesen und die auch befolgt allerdings ist das ohne virtualenv
jetzt hab ich das ganze mal angepasst bekomme aber trotzdem immer eine Fehler 500
meine django.wsgi
Code: Alles auswählen
import os, sys
import site
site.addsitedir('/home/klaus/.virtualenv/mediendesign/lib/python2.6/site-packages')
# path to directory of the .wsgi file ('apache/')
wsgi_dir = os.path.abspath(os.path.dirname(__file__))
# path to project root directory (parent of 'apache/')
project_dir = os.path.dirname(wsgi_dir)
# add project directory to system's PATH
sys.path.append(project_dir)
# add the settings.py file to your system's PATH
project_settings = os.path.join(project_dir,'settings')
# explicitly define the DJANGO_SETTINGS_MODULE
os.environ['DJANGO_SETTINGS_MODULE'] = 'mediendesign.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
dann meine Apache config im /apache2/sites-available/
Code: Alles auswählen
NameVirtualHost *:80
WSGIPythonHome /home/klaus/.virtualenv/mediendesign
<VirtualHost *:80>
ServerAdmin xxx@xxx.xx
# ServerName is required for a virtual host
ServerName http://www.kk88.at
ServerAlias kk88.at
Alias /static /home/klaus/pythonprojects/mediendesign/static
# DocumentRoot is required for a virtual host
DocumentRoot /home/klaus/pythonprojects/mediendesign
#WSGIPythonHome /home/klaus/.virtualenv/mediendesign
WSGIScriptAlias / /home/klaus/pythonprojects/mediendesign/apache/django.wsgi
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
in der apache error.log steht das drinen
Code: Alles auswählen
[Tue Apr 19 20:49:02 2011] [notice] caught SIGTERM, shutting down
[Tue Apr 19 20:49:03 2011] [notice] Apache/2.2.16 (Debian) mod_wsgi/3.3 Python/2.6.6 configured -- resuming normal operations
[Tue Apr 19 20:50:01 2011] [error] [client 192.168.217.172] mod_wsgi (pid=19111): Target WSGI script '/home/klaus/pythonprojects/mediendesign/apache/django.wsgi' cannot be loaded as Python module.
[Tue Apr 19 20:50:01 2011] [error] [client 192.168.217.172] mod_wsgi (pid=19111): Exception occurred processing WSGI script '/home/klaus/pythonprojects/mediendesign/apache/django.wsgi'.
[Tue Apr 19 20:50:01 2011] [error] Traceback (most recent call last):
[Tue Apr 19 20:50:01 2011] [error] File "/home/klaus/pythonprojects/mediendesign/apache/django.wsgi", line 1, in <module>
[Tue Apr 19 20:50:01 2011] [error] import os, sys
[Tue Apr 19 20:50:01 2011] [error] ImportError: No module named os
[Tue Apr 19 20:50:01 2011] [error] [client 192.168.217.172] mod_wsgi (pid=19113): Target WSGI script '/home/klaus/pythonprojects/mediendesign/apache/django.wsgi' cannot be loaded as Python module.
[Tue Apr 19 20:50:01 2011] [error] [client 192.168.217.172] mod_wsgi (pid=19113): Exception occurred processing WSGI script '/home/klaus/pythonprojects/mediendesign/apache/django.wsgi'.
[Tue Apr 19 20:50:01 2011] [error] Traceback (most recent call last):
[Tue Apr 19 20:50:01 2011] [error] File "/home/klaus/pythonprojects/mediendesign/apache/django.wsgi", line 1, in <module>
[Tue Apr 19 20:50:01 2011] [error] import os, sys
[Tue Apr 19 20:50:01 2011] [error] ImportError: No module named os
Jetzt habe ich im Internet ziemlich viel gelesen allerdings macht mich das alles noch verwirrter.
kann mir da jemand helfen auf dem richtigen Weg zu kommen?
tia jonny
Re: Webserver für Django konfigurieren?
Verfasst: Dienstag 19. April 2011, 23:18
von /me
Spontan aus dem Bauch heraus: Passt die Version von mod_wsgi zu deiner Python-Version?
Re: Webserver für Django konfigurieren?
Verfasst: Mittwoch 20. April 2011, 08:19
von djonny
Danke für die schnelle Antwort, wo sehe ich ob die beiden Version zusammenarbeiten?
also Python ist die 2.6.6 und mod_wsgi so wie ich im error.log herauslesen kann die 3.3 wenn das stimmt
Re: Webserver für Django konfigurieren?
Verfasst: Mittwoch 20. April 2011, 10:12
von /me
djonny hat geschrieben:Danke für die schnelle Antwort, wo sehe ich ob die beiden Version zusammenarbeiten?
Bei einem Linux-System mit entsprechender Paketverwaltung müsste das eigentlich passen. Bei manueller Installation (oder unter Windows) könnte da etwas schief gehen.
Darf der User des Webservers eigentlich Python überhaupt verwenden? Ich sehe da irgendwas mit virtualenv. Sollten da die Rechte nicht entsprechend gesetzt sein, dann kann das IMHO auch zu Problemen führen. Ich verwende hier immer noch die Einträge für WSGIDaemonProcess und WSGIProcessGroup um eine vom eigentlichen Webserver getrennte Umgebung zu haben.
Re: Webserver für Django konfigurieren?
Verfasst: Mittwoch 20. April 2011, 16:56
von djonny
Hab jetzt diese 2 Zeilen in der sites-available hinzugefügt allerdings keine Änderung.
Irgendwie erscheint es als würde wsgi, python nicht aufrufen...
WSGIDaemonProcess
www.kk88.at user=www-data group=www-data processes=2 threads=25
WSGIProcessGroup
www.kk88.at
wo sehe ich ob www-data python verwenden kann?
Danke schonmal im voraus
Re: Webserver für Django konfigurieren?
Verfasst: Donnerstag 21. April 2011, 17:27
von djonny
Danke für deine Hilfe, hab den Fehler jetzt gefunden...
hatte statt .virtualenvs .virtualenv stehen und das ist natürlich nicht das selbe und somit hat er python nicht gefunden.
Immer die Kleinigkeiten sucht man am längsten