2017-01-15 2 views
1

У меня небольшой проект, и я пытаюсь создать сайт с использованием Django, Apache 2 и mod_wsgi. Все отлично работает на сервере разработки Django, и я также могу открыть первую страницу своего сайта с помощью apache.Ошибка сервера (500) при попытке войти в административную страницу Django

Однако, когда я пытаюсь войти на страницу администратора или использовать свою собственную страницу входа в систему, я получаю ошибку сервера (500). Может ли кто-нибудь сказать мне, что я делаю неправильно?

settings.py:

import os 

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 

SECRET_KEY = ... 

DEBUG = True 

ALLOWED_HOSTS = ["localhost", "192.168.0.121", "127.0.0.1"] 

LOGIN_REDIRECT_URL='/account' 
LOGOUT_REDIRECT_URL='/login' 

INSTALLED_APPS = [ 
    'account.apps.AccountConfig', 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
] 

MIDDLEWARE = [ 
    'django.middleware.security.SecurityMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
] 

ROOT_URLCONF = 'kraken.urls' 

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [os.path.join(BASE_DIR, 'templates')] 
     , 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
      ], 
     }, 
    }, 
] 

WSGI_APPLICATION = 'kraken.wsgi.application' 

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.sqlite3', 
     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 
    } 
} 

AUTH_PASSWORD_VALIDATORS = [ 
    { 
     'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 
    }, 
] 

LANGUAGE_CODE = 'en-us' 

TIME_ZONE = 'UTC' 

USE_I18N = True 

USE_L10N = True 

USE_TZ = True 

STATIC_URL = '/static/' 
STATIC_ROOT = os.path.join(BASE_DIR, "static/") 

000-default.conf:

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/html   
    Alias /static /home/pi/kraken/static 
    Alias /favicon.ico /home/pi/kraken/static/favicon.ico 
    <Directory /home/pi/kraken/static> 
      Require all granted 
    </Directory> 

    <Directory /home/pi/kraken/kraken> 
      <Files wsgi.py> 
        Require all granted 
      </Files> 
    </Directory> 
    WSGIDaemonProcess kraken python-path=/home/pi/kraken python-home=/home/pi/.conda/envs/django 
    WSGIProcessGroup kraken 
    WSGIScriptAlias//home/pi/kraken/kraken/wsgi.py 

</VirtualHost> 

Я Чаун: WWW-данные по моей базе данных и мою папку проекта

+0

Вам необходимо найти в журнале ошибок Apache причину ошибки. Если ничего не отображается, тогда временно установите '' DEBUG = True'' в файле настроек Django и перезапустите веб-сервер. Если ошибка из Django, в этом случае будет отображаться ошибка в браузере. –

+0

Спасибо, Грэм, я нашел, что не так, см. Мой ответ. – Fork2

ответ

0

Если вы пытаетесь для запуска вашего веб-приложения на реальном сервере, вы должны обновить это поле в файле settings.py.

ALLOWED_HOSTS = ["localhost", "192.168.0.121", "127.0.0.1"] 

Это должно включать в себя IP-адрес вашего веб-сервера, в противном случае Django поднимет ошибку на 500 сервера, как тот, который вы сталкиваетесь.

+0

Я просто обращаюсь к серверу по адресу 192.168.0.121. Домашняя страница загружается, так что должно быть хорошо – Fork2

1

Я последовал совету Грэма Дамплтона и обнаружил, что разрешений в моей базе данных недостаточно. Я исправил это, используя chown www-data, и моя проблема была решена.

+0

Привет, Fork2, не могли бы вы объяснить чуть подробнее, как именно вы пошли на изменение разрешений или указали мне в этом направлении? Кажется, я сталкиваюсь с одной и той же проблемой и уверен, что это проблема с разрешениями ... – natureminded

Смежные вопросы