Django为每个视图(根视图除外)提供500个错误

Django为每个视图(根视图除外)提供500个错误,django,apache,deployment,dreamhost,Django,Apache,Deployment,Dreamhost,因此,我试图部署到我的生产环境中,除了根URL之外,每个视图都会出现500个错误: 这些错误似乎是apache错误,而不是那些花哨的django错误: 内部服务器错误 服务器遇到内部错误 错误或配置错误,并且 无法完成您的请求 请与服务器联系 管理员 webmaster@5buckchuck.com通知 他们知道错误发生的时间, 你可能做过的任何事 可能是错误的原因 有关此错误的详细信息,请参阅 可以在服务器错误日志中找到 根据服务器错误日志: [Thu Jul 07 22:04:53 2011

因此,我试图部署到我的生产环境中,除了根URL之外,每个视图都会出现500个错误:

这些错误似乎是apache错误,而不是那些花哨的django错误:

内部服务器错误

服务器遇到内部错误 错误或配置错误,并且 无法完成您的请求

请与服务器联系 管理员 webmaster@5buckchuck.com通知 他们知道错误发生的时间, 你可能做过的任何事 可能是错误的原因

有关此错误的详细信息,请参阅 可以在服务器错误日志中找到

根据服务器错误日志:

[Thu Jul 07 22:04:53 2011][错误] [客户端我的IP]请求超出了 由于以下原因,限制10个内部重定向 可能的配置错误。使用 “LimitInternalRecursion”将增加 如有必要,限制。使用“日志级别” “调试”以获取回溯

信息:

  • 调试设置为true
  • 我试过syncdb,都是最新的
  • 我已经连接到db,那里一切看起来都很好
  • py似乎反映了dev中的所有URL
我不太清楚该到哪里去。更好的日志记录肯定会有所帮助。任何帮助都将不胜感激

根据请求:

settings.py

DEBUG = True
TEMPLATE_DEBUG = DEBUG

TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
 #'django.template.loaders.eggs.Loader',
)

MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)

AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend',
)

ROOT_URLCONF = 'fivebuckchuck.urls'

TEMPLATE_DIRS = (
'/home/MyUserName/5buckchuck.com/fivebuckchuck/templates'

)

INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',

#5BC Stuff
'winerater',

#all-auth apps,
'emailconfirmation',
'uni_form',
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.twitter',
'allauth.openid',
)


TEMPLATE_CONTEXT_PROCESSORS = (
'allauth.context_processors.allauth',
'allauth.account.context_processors.account',
'django.core.context_processors.media',
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.request',
)
from django.conf.urls.defaults import *
from winerater.views import *
from settings import MEDIA_ROOT
from django.views.generic.simple import direct_to_template
from django.views.generic.simple import redirect_to

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
# Example:
# (r'^mobile_5BC/', include('mobile_5BC.foo.urls')),

# Uncomment the admin/doc line below and add 'django.contrib.admindocs' 
# to INSTALLED_APPS to enable admin documentation:
(r'^admin/doc/', include('django.contrib.admindocs.urls')),

(r'^admin/', include(admin.site.urls)),
(r'^$', front_page),
(r'^user/(\w+)/$', user_page),
(r'^login/$', 'django.contrib.auth.views.login'),
(r'^login/success/$', direct_to_template,
{'template': 'front_page'}),    
#(r'^accounts/login/$', 'django.contrib.auth.views.login'),
 (r'^logout/$', logout_page),
  (r'^media/(?P<path>.*)$', 'django.views.static.serve',
   {'document_root': MEDIA_ROOT}),
  (r'^register/$', register_page),
  (r'^register/success/$', redirect_to,
   {'url': '/login/'}),
  (r'^save/$', wine_add_page),
  (r'detail/(\w+)/', wine_detail_page),
  (r'wine_image/(\w+)/$', wine_image),    
  (r'wines/([^\s]+)/$', wine_results),
  (r'review/(\w+)/$', wine_review_page),
  (r'^accounts/', include('allauth.urls')),
  (r'^accounts/profile/', front_page),
)
import sys, os
INTERP = '/home/MyUserName/local/bin/python' # Is my actual username
if sys.executable != INTERP:
   os.execl(INTERP, INTERP, *sys.argv)
sys.path.append(os.getcwd())
sys.path.append(os.getcwd()+'/fivebuckchuck')
os.environ['DJANGO_SETTINGS_MODULE'] = "fivebuckchuck.settings"
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
url.py

DEBUG = True
TEMPLATE_DEBUG = DEBUG

TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
 #'django.template.loaders.eggs.Loader',
)

MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)

AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend',
)

ROOT_URLCONF = 'fivebuckchuck.urls'

TEMPLATE_DIRS = (
'/home/MyUserName/5buckchuck.com/fivebuckchuck/templates'

)

INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',

#5BC Stuff
'winerater',

#all-auth apps,
'emailconfirmation',
'uni_form',
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.twitter',
'allauth.openid',
)


TEMPLATE_CONTEXT_PROCESSORS = (
'allauth.context_processors.allauth',
'allauth.account.context_processors.account',
'django.core.context_processors.media',
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.request',
)
from django.conf.urls.defaults import *
from winerater.views import *
from settings import MEDIA_ROOT
from django.views.generic.simple import direct_to_template
from django.views.generic.simple import redirect_to

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
# Example:
# (r'^mobile_5BC/', include('mobile_5BC.foo.urls')),

# Uncomment the admin/doc line below and add 'django.contrib.admindocs' 
# to INSTALLED_APPS to enable admin documentation:
(r'^admin/doc/', include('django.contrib.admindocs.urls')),

(r'^admin/', include(admin.site.urls)),
(r'^$', front_page),
(r'^user/(\w+)/$', user_page),
(r'^login/$', 'django.contrib.auth.views.login'),
(r'^login/success/$', direct_to_template,
{'template': 'front_page'}),    
#(r'^accounts/login/$', 'django.contrib.auth.views.login'),
 (r'^logout/$', logout_page),
  (r'^media/(?P<path>.*)$', 'django.views.static.serve',
   {'document_root': MEDIA_ROOT}),
  (r'^register/$', register_page),
  (r'^register/success/$', redirect_to,
   {'url': '/login/'}),
  (r'^save/$', wine_add_page),
  (r'detail/(\w+)/', wine_detail_page),
  (r'wine_image/(\w+)/$', wine_image),    
  (r'wines/([^\s]+)/$', wine_results),
  (r'review/(\w+)/$', wine_review_page),
  (r'^accounts/', include('allauth.urls')),
  (r'^accounts/profile/', front_page),
)
import sys, os
INTERP = '/home/MyUserName/local/bin/python' # Is my actual username
if sys.executable != INTERP:
   os.execl(INTERP, INTERP, *sys.argv)
sys.path.append(os.getcwd())
sys.path.append(os.getcwd()+'/fivebuckchuck')
os.environ['DJANGO_SETTINGS_MODULE'] = "fivebuckchuck.settings"
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

您应该检查apache配置中是否有不必要的重定向/重写/别名行。首先移除所有这些问题。

这可能需要反复解决。我的初步猜测是您的乘客_wsgi.py文件有问题。如果您在开发环境中没有使用Apache(例如使用Django的runserver),那么您不会访问此文件,因此在开发环境中不会出现问题。请确保此行指向正确的Django设置文件

os.environ['DJANGO_SETTINGS_MODULE'] = "fivebuckchuck.settings"
给我这个错误:

An error occurred importing your passenger_wsgi.py
(过去时,您已经更改了一些内容,现在URL提供了一个“Hello World!”Python消息。现在它是一个带有调试回溯的ImportError。嘿嘿,好的,我将让这个答案搁置一会儿。)


这可能是一个漫长的过程,但请仔细阅读。James Bennett正在为Django设置和加载设置。您可以尝试导入您的设置并将其提供给setup_environ()。

问题最终是Dreamhost编写了一个包含PHP项目的.htaccess文件,这颠覆了Django的URL读取方案。希望这可以帮助其他用户。

您尝试过“日志级调试”了吗。。。不,还是看不到你的代码。另一件我注意到的事情是在网络窗格中,看起来有两次请求:两次请求❘ 1.22KB传输/wines/reds/GET 500 text/html 675B 283ms 283ms0/wines/reds/GET 500 text/html 675B 289ms 288ms1mst这是在共享主机上,所以我想我无法访问conf文件。嗨,J,你在尝试修复此问题时让我措手不及。我刚刚安装了python paste作为调试工具,我没有收到正确的错误消息。也就是说,我的应用程序可以找到
uni\u form
。这很奇怪,因为我可以从python shell中导入它。。。。更新:很抱歉耽搁了你的时间。我直接在app文件夹中安装了PyPaste,Uni_表单的django错误已经消失,但现在我在尝试访问任何其他URL时遇到了500个错误,而不是:5buckchuck.com/根据Apache日志:[Thu Jul 14 09:39:30 2011][error][client 173.8.133.102]由于可能的配置错误,请求超出了10个内部重定向的限制。如有必要,使用“LimitInternalRecursion”增加限制。使用“LogLevel debug”获取回溯。参考:关于从这里开始的建议?我有点困惑,你是怎么解决的?我假设dreamhost没有在您的目录中创建.htaccess文件,对吗?