Django, apache, mod_wsgi - Fehler: Vorzeitiges Ende der Skript-Header
Apache-logs im debug-Modus:
[Tue Dec 21 11:36:33 2010] [info] [client 1.53.149.114] mod_wsgi (pid=24831, process='mysite', application='mysite.com|'): Loading WSGI script '/home/anhtran/webapps/mysite.com/django.wsgi'.
[Tue Dec 21 11:36:33 2010] [error] [client 1.53.149.114] Premature end of script headers: django.wsgi
[Tue Dec 21 11:36:33 2010] [notice] child pid 24831 exit signal Segmentation fault (11)
[Tue Dec 21 11:36:33 2010] [info] mod_wsgi (pid=24980): Attach interpreter ''.
Meine conf-Datei:
WSGISocketPrefix /tmp/wsgi
<VirtualHost *:80>
ServerName mysite.com
ServerAlias www.mysite.com
ServerAdmin admin@mysite.com
DocumentRoot /home/anhtran/webapps/mysite.com/public_html
WSGIDaemonProcess mysite processes=5 threads=25
WSGIProcessGroup mysite
WSGIScriptAlias //home/anhtran/webapps/mysite.com/django.wsgi
LogLevel debug
<Directory /home/anhtran/webapps/mysite.com/mysite>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Django funktioniert gut in einem basic-Projekt ohne eine Datenverbindung wie MySQLdb oder sqlite3.
Ich bin mit CentOS 5 64 bit, apache 2.x, mod_wsgi 3.2.
Ich denke, das ist kein problem, Django, aber ich habe keine Ahnung. Jeder kann es beheben? Helfen Sie mir.
Danke! 🙂
django.wsgi
#!/usr/local/bin/python
import os, site, sys
# add the virtual environment path
site.addsitedir('/home/anhtran/webapps/mysite.com/env/lib/python2.6/site-packages')
site.addsitedir('/home/anhtran/webapps/mysite.com/mysite')
site.addsitedir('/home/anhtran/webapps/mysite.com')
# fix markdown.py (and potentially others) using stdout
sys.stdout = sys.stderr
#Calculate the path based on the location of the WSGI script.
project = os.path.dirname(__file__)
workspace = os.path.dirname(project)
sys.path.append(workspace)
os.environ['PYTHON_EGG_CACHE'] = '/home/anhtran/webapps/mysite.com/.python-eggs'
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
from django.core.handlers.wsgi import WSGIHandler
application = WSGIHandler()
Ich gelesen habe, einige Fragen in diesem link: http://code.google.com/p/modwsgi/wiki/FrequentlyAskedQuestions
Aber ich verstehe immer noch nicht die Lösungen.
InformationsquelleAutor der Frage anhtran | 2010-12-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ablauf der Dämon-Prozess ist abgestürzt. Siehe Kommentare in der mod_wsgi FAQ über das, was verursacht Abstürze:
http://code.google.com/p/modwsgi/wiki/FrequentlyAskedQuestions
und Folgen Sie den links dort.
Letztlich die Ursache kann vieles sein, einschließlich Verladung unvereinbar mod_python zur gleichen Zeit, mithilfe von Python-C Erweiterungs-Modul, das funktioniert nicht mit sub-Dolmetscher, unvereinbar shared library-Versionen von Apache und/oder Erweiterung von Modulen in PHP etc.
InformationsquelleAutor der Antwort Graham Dumpleton
Schließlich fand ich die Lösung. Es ist ein problem Mehrerer Python-Versionen: http://code.google.com/p/modwsgi/wiki/InstallationIssues#Multiple_Python_Versions.
Vielen Dank an alle! 😛
InformationsquelleAutor der Antwort anhtran
Ich hatte ein ähnliches problem auf django,apache2,mod_wsgi,python2.6 auf einer virtuellen Maschine installiert. Ich löste das problem incerasing der ram zugewiesen, um die virtuelle Maschine.
Ich hoffe das hilft.
InformationsquelleAutor der Antwort Andrea Araldo
Versuchen, diese zu löschen
Und diese
Auf meinem server funktioniert es.
InformationsquelleAutor der Antwort Stan
Ich bin immer der gleiche Fehler, und während die zugrunde liegende Ursache kann sein, das mehrere python-Versionen, die ich gefunden habe, dass es geschieht, weil der hing Abfragen von Django zu meinem MySQL server. Wenn ich ein
in der MySQL-Eingabeaufforderung sehe ich, dass Abfragen sichern in der Warteschlange. Wenn kill ich die Abfrage an der Spitze, alle anderen offenen Verfahren sofort abschließen, und meine Seite kommt wieder zum Leben.
Hoffe, dies hilft jemand anderes. Sie können auch
die genaue Abfrage zu sehen. In meinem Fall war es eine django
select_related
Abfrage, die erstellt Tonnen vonINNER JOIN
- Klauseln in der Abfrage.Finden Sie unter: http://dev.mysql.com/doc/refman/5.1/en/show-processlist.html
InformationsquelleAutor der Antwort Randy
gleich meine Problem wurde gelöst, wie diese: entfernen cgi konfigurieren, dass Hinzugefügt wurde, indem Sie mich eines Tages:
AddHandler cgi-script .py
InformationsquelleAutor der Antwort lbsweek