2011-07-27 49 views
3

我有一个Apache服务器,我想开始用Django写的网站。我用户mod_wsgi。现在我准备好了。但是服务器的响应是空的。而在错误日志中,什么也没有。你知道是什么原因吗?Django:只有空白页

如果有些文件可以帮助(* .wsgi,settings.py),我会追加它。

Prochazky.wsgi

import os 
import sys 
import site 

os.environ['PYTHON_EGG_CACHE'] = '/home/prochazky/venv/.python-eggs' 

site.addsitedir('/home/prochazky/venv/lib/python2.6/site-packages') 

os.environ['DJANGO_SETTINGS_MODULE'] = 'Prochazky.settings' 

sys.path.append('/home/prochazky/') 
sys.path.append('/home/prochazky/Prochazky/') 

import django.core.handlers.wsgi 
application = django.core.handlers.wsgi.WSGIHandler() 

Apache的虚拟主机:

<VirtualHost *:80> 
    WSGIScriptAlias//home/prochazky/Prochazky/Prochazky.wsgi 
    ServerName testing.prochazky.net 
    DocumentRoot /home/prochazky 

    ErrorLog /home/prochazky/wsgi.log 
</VirtualHost> 
+1

你能告诉我们你的WSGI和Apache虚拟主机文件? –

+0

是的,我已添加它。 – yetty

+0

顺便说一下,使用'DocumentRoot/home/prochazky'是一个非常糟糕的主意。如果您设法删除WSGIScriptAlias,那么该帐户的主目录中的所有内容都可能会被人们下载。切勿将DocumentRoot指向包含您不希望人们看到的东西的目录。 –

回答

7

试图得到一个Hello World程序的工作第一,而不是Django的。关注:

http://code.google.com/p/modwsgi/wiki/WhereToGetHelp?tm=6#Conference_Presentations

和阅读:

http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide

在猜测,虽然,你也许装载了mod_python到同一个Apache。一个不兼容的mod_python只会在Apache主错误日志中产生一个分段错误消息。


更新1

你加载mod_php,并且到同一个Apache?它有时可能会有冲突的共享库需求,并会导致崩溃。如果您还在加载它,请从Apache配置中禁用它。

也可以尝试设置:

WSGIApplicationGroup %{GLOBAL} 

这将强制使用主解释的,这将避免与不正确写入子口译工作的第三方扩展的问题。

你确实需要仔细看看主要的Apache错误日志,而不是虚拟主机。当您提出请求时,运行一个'tail -f'并检查是否有消息存在,特别是分段错误或类似消息。这种关于进程崩溃和导致空页面的消息不会显示在虚拟主机错误日志中。

+0

是的,我试过你好世界程序,它的工作原理。我没有mod_python(是的,我相信,我一直在寻找它)。 – yetty

+0

好吧,打:)谢谢。 – yetty

+0

虽然这是它? PHP或可能是Python的第三方C扩展? –

1

是否有可能您的根网址/视图的模板文件为空或计算为空?

举例来说,如果你有一个模板,像这样:

{% extends "base.html" %} 
{% block content %}blah blah{% endblock %} 

和base.html文件不使用块“内容”,然后从你的模板内容分块将不会被使用,你的尽管有内容,但模板将评估为空。

+0

中解释。响应完全是空的 - 没有头文件,没有头文件。我在我的本地主机上有这个相同的应用程序,它在那里工作。不幸的是它是不同的操作系统。 – yetty

+0

当我去那里,它给了我一个500错误,所以你可能想要现在检查日志。如果你的IP设置为内部,它可能会试图向你显示错误,但也会失败,但不会向我显示错误。 – fahhem

+0

是的,我明白了,我正在努力并尝试一些思考,因此有e500。 – yetty

0

这是从我的设置(名称更改为保护 无辜 有罪)。

<VirtualHost *:80> 
     ServerName site.domain.com 
     ServerAdmin [email protected] 

     WSGIScriptAlias//home/user/site/django.wsgi 

     <Directory /home/user/site/> 
       Options FollowSymLinks 
       AllowOverride None 
       Order allow,deny 
       allow from all 
     </Directory> 
     ... etc etc etc. 

我认为你需要的<directory>允许服务器访问.wsgi。
我真的不是一个Apache大师,尽管如此,不要把这个例子作为完美。(我认为所有需要的是order Allow, denyallow from all

一个很好的网站,以检查出:http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango