Django 1.5 url弃用警告在Webfaction Apache wsgi中导致500错误

时间:2013-03-24 23:04:23

标签: django mod-wsgi django-1.5

我已经将这个特定的应用程序从Django 1.4更新为Django 1.5并且一切都在本地运行良好 - 我不得不修复一些url调用,但这很好。现在部署到Webfaction并通过Apache运行该站点+ mod_wsgi我在尝试加载的每个页面上都收到500错误。

所有配置文件保持不变,只有Django库已更改。我已经安装了所有要求并且装载得很好。

如果我在本地设置中使用DEBUG = True将网站调低到调试模式,那么一切正常。在调试模式下的错误日志中,我得到以下内容:

[Sun Mar 24 22:47:17 2013] [error] /home/user/webapps/app/htdocs/env/lib/python2.7/site-packages/django/conf/urls/defaults.py:3: DeprecationWarning: django.conf.urls.defaults is deprecated; use django.conf.urls instead
[Sun Mar 24 22:47:17 2013] [error]   DeprecationWarning)

我的问题是 - 为什么这会被提出为错误? [error]?它不应该在[info]级吗?当我将应用程序退出调试模式时,这是否会导致500错误?

使用Django 1.5,我可以做些什么来让网站再次活跃起来?有没有办法关掉这些警告?

我确实看过Django源代码https://github.com/django/django/commit/0d49fdb573d44794cc78c6af4761cc79c5330315中的这个提交,看看我是否可以关闭应用程序的local_settings文件中的日志记录,但没有运气。

这是我的httpd.conf文件:

ServerRoot "/home/user/webapps/app/apache2"

LoadModule dir_module        modules/mod_dir.so
LoadModule env_module        modules/mod_env.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module       modules/mod_mime.so
LoadModule rewrite_module    modules/mod_rewrite.so
LoadModule setenvif_module   modules/mod_setenvif.so
LoadModule wsgi_module       modules/mod_wsgi.so

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog /home/user/logs/user/access_app.log combined
ErrorLog /home/user/logs/user/error_app.log
LogLevel info
KeepAlive Off
Listen 27114
MaxSpareThreads 3
MinSpareThreads 1
ServerLimit 1
SetEnvIf X-Forwarded-SSL on HTTPS=1
ThreadsPerChild 5
WSGIDaemonProcess app processes=2 threads=12 python-path=/home/user/lib/python2.7:/home/user/webapps/app/htdocs:/home/user/webapps/app/htdocs/env/lib/python2.7/site-packages
WSGIProcessGroup app
WSGIRestrictEmbedded On
WSGILazyInitialization On
WSGIScriptAlias / /home/user/webapps/app/htdocs/ag/wsgi.py

这是我的wsgi.py

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ag.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

1 个答案:

答案 0 :(得分:4)

我找到了解决方案 - [error]消息是红色鲱鱼。

在Django 1.5中,当设置为DEBUG = False时,设置文件中的ALLOWED_HOSTS 必需https://docs.djangoproject.com/en/1.5/releases/1.5/#allowed-hosts-required-in-production

否则该网站将引发500个错误 - 这就是我所得到的。

再次添加ALLOWED_HOSTS,一切恢复正常。简单的RTFM案例。