Django обслуживает 500 ошибок для каждого представления, кроме root - PullRequest
2 голосов
/ 08 июля 2011

Итак, я пытаюсь выполнить развертывание в своей производственной среде и получаю 500 ошибок для каждого представления, кроме корневого URL: http://5buckchuck.com/

Ошибки кажутся ошибками apache, а не причудливыми django:

Внутренняя ошибка сервера

Сервер обнаружил внутренний ошибка или неправильная конфигурация и была невозможно выполнить ваш запрос.

Пожалуйста, свяжитесь с сервером администратор, webmaster@5buckchuck.com и сообщите их времени, когда произошла ошибка, и все, что вы могли бы сделать это возможно, вызвало ошибку.

Более подробная информация об этой ошибке может быть доступным в журнале ошибок сервера.

для журналов ошибок сервера:

[Чт 07 июля 22:04:53 2011] [ошибка] [клиент мой IP] Запрос превысил ограничение в 10 внутренних перенаправлений из-за вероятная ошибка конфигурации. использование LimitInternalRecursion увеличить предел при необходимости. Используйте 'LogLevel отладка, чтобы получить обратный след.

Информация:

  • для отладки установлено значение true
  • Я пробовал syncdb, все в курсе
  • Я подключился к БД и там все выглядит хорошо
  • urls.py, кажется, отражает все URL в dev

Я не совсем уверен, куда идти. Лучшее ведение журнала, безусловно, поможет. Любая помощь будет принята с благодарностью.

По запросу:

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',
)

и urls.py

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),
)

и passenger_wsgi.py

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()

Ответы [ 3 ]

1 голос
/ 16 июля 2011

В результате Dreamhost записал файл .htaccess, в котором содержались элементы для PHP, что подорвало схему чтения URL в Django. Надеюсь, что это может помочь другим пользователям.

0 голосов
/ 08 июля 2011

Это может потребовать некоторых назад и вперед, чтобы решить.Мое первоначальное предположение - проблема с вашим passenger_wsgi.py файлом.Если вы не используете Apache в своей среде разработки (например, с помощью runserver Django), вы не попадете в этот файл и, следовательно, не будете иметь проблем в dev.Убедитесь, что эта строка указывает на файл правильной настройки Django.

os.environ['DJANGO_SETTINGS_MODULE'] = "fivebuckchuck.settings"

http://5buckchuck.com/media/ дает мне эту ошибку:

An error occurred importing your passenger_wsgi.py

(прошедшее время, вы измениличто-то, и теперь этот URL дает сообщение Python «Hello World!». Теперь это ImportError с отладочной трассировкой. Хехех, хорошо, я оставлю этот ответ на мгновение.)

Это может быть длинным, но прочитайте это .Это Джеймс Беннетт о способах установки и загрузки настроек для Django.Вы можете попробовать импортировать ваши настройки и передать их в setup_environ ().

0 голосов
/ 08 июля 2011

Вам следует проверить конфигурацию apache на наличие ненужных строк Redirect / Rewrite / Alias.Начните с удаления всех из них.

...