Apache登录模式debug:
[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 ''.
我的conf文件:
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在没有数据连接的基本项目中工作正常,例如MySQLdb或sqlite3。 我使用的是CentOS 5 64位,apache 2.x,mod_wsgi 3.2。 我认为这不是Django的问题,但我不知道它。每个人都可以解决它吗?帮我。 谢谢! :)
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()
我已在此链接中阅读了一些问题:http://code.google.com/p/modwsgi/wiki/FrequentlyAskedQuestions 但我仍然不明白解决方案。
答案 0 :(得分:10)
守护进程崩溃了。请参阅mod_wsgi常见问题解答中有关导致崩溃的原因的注释:
http://code.google.com/p/modwsgi/wiki/FrequentlyAskedQuestions
并点击链接。
最终原因可能很多,包括同时加载不兼容的mod_python,使用不适用于子解释器的Python C扩展模块,Apache使用的不兼容的共享库版本和/或PHP中的扩展模块等。< / p>
答案 1 :(得分:4)
最后,我找到了解决方案。这是多个Python版本的问题:http://code.google.com/p/modwsgi/wiki/InstallationIssues#Multiple_Python_Versions。
谢谢大家! :P
答案 2 :(得分:4)
我在django上安装了类似的问题,apache2,mod_wsgi,python2.6安装在虚拟机上。我解决了分配给虚拟机的ram的问题。
我希望这会有所帮助。
答案 3 :(得分:0)
尝试删除此
WSGISocketPrefix /tmp/wsgi
这个
WSGIDaemonProcess mysite processes=5 threads=25
WSGIProcessGroup mysite
在我的服务器上运行。
答案 4 :(得分:0)
我收到同样的错误,虽然根本原因可能是多个python版本,但我发现它正在发生,因为从Django到我的MySQL服务器的挂起查询。如果我跑了
show processlist;
在MySQL提示符下,我看到查询正在队列中备份。如果我在顶部终止查询,所有其他打开的进程立即完成,我的网站恢复生机。
希望这有助于其他人。你也可以运行
show full processlist;
查看确切的查询。就我而言,这是一个django select_related
查询,在查询中创建了大量INNER JOIN
个子句。
请参阅:http://dev.mysql.com/doc/refman/5.1/en/show-processlist.html
答案 5 :(得分:0)
我的同一个问题就这样解决了:删除有一天我添加的cgi配置:
AddHandler cgi-script .py