#python #django #amazon-web-services #internal-server-error #http-status-code-500
#python #django #amazon-веб-сервисы #ошибка внутреннего сервера #http-status-code-500
Вопрос:
Как мне исправить ошибку внутреннего сервера Django 500 в развернутом приложении AWS eb?
Нужно ли мне менять разрешенные хосты в моемbase.py файл, в котором должен быть IP-адрес ec2 в elasticbeanstalk?
# SECURITY WARNING: keep the secret key used in production secret!
# Raises ImproperlyConfigured exception if SECRET_KEY not in os.environ
SECRET_KEY = env('SECRET_KEY')
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = (
'django.contrib.auth',
'django_admin_bootstrapped',
'django.contrib.admin',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
)
…
STATIC_URL = '/static/'
ALLOWED_HOSTS = []
…
Я включил отладку и запустил eb config и eb logs. Значения eb deploy отображаются ниже, а значения eb logges ниже. Как вы решаете проблему, из-за которой «Нет модуля с именем django»?
Creating application version archive "app-3e17-161020_112522".
Uploading pronet/app-3e17-161020_112522.zip to S3. This may take a while.
Upload Complete.
INFO: Environment update is starting.
INFO: Deploying new version to instance(s).
INFO: New application version was deployed to running EC2 instances.
INFO: Environment update completed successfully.
Ниже приведены выходные данные из журналов eb.
============= i-0b11de8b8521ea5c0 ==============
-------------------------------------
/var/log/httpd/error_log
-------------------------------------
[Thu Oct 20 17:46:59.414032 2016] [:error] [pid 11268]
[remote 172.31.5.67:41390] Traceback (most recent call last):
[Thu Oct 20 17:46:59.414077 2016] [:error] [pid 11268]
[remote 172.31.5.67:41390] File "/opt/python/current/app/pronet/src/pronet/wsgi.py", line 12, in <module>
[Thu Oct 20 17:46:59.414083 2016] [:error] [pid 11268]
[remote 172.31.5.67:41390] from django.core.wsgi import get_wsgi_application
[Thu Oct 20 17:46:59.414104 2016] [:error] [pid 11268]
[remote 172.31.5.67:41390] ImportError: No module named 'django'
[Thu Oct 20 17:47:00.046644 2016] [:error] [pid 11268]
[remote 172.31.5.67:43182] mod_wsgi (pid=11268): Target WSGI script '/opt/python/current/app/pronet/src/pronet/wsgi.py' cannot be loaded as Python module.
[Thu Oct 20 17:47:00.046704 2016] [:error] [pid 11268]
[remote 172.31.5.67:43182] mod_wsgi (pid=11268): Exception occurred processing WSGI script '/opt/python/current/app/pronet/src/pronet/wsgi.py'.
[Thu Oct 20 17:47:00.046738 2016] [:error] [pid 11268]
[remote 172.31.5.67:43182] Traceback (most recent call last):
[Thu Oct 20 17:47:00.046784 2016] [:error] [pid 11268]
[remote 172.31.5.67:43182] File "/opt/python/current/app/pronet/src/pronet/wsgi.py", line 12, in <module>
[Thu Oct 20 17:47:00.046789 2016] [:error] [pid 11268]
[remote 172.31.5.67:43182] from django.core.wsgi import get_wsgi_application
[Thu Oct 20 17:47:00.046810 2016] [:error] [pid 11268]
[remote 172.31.5.67:43182] ImportError: No module named 'django'
[Thu Oct 20 17:47:01.340552 2016] [:error] [pid 11268]
[remote 172.31.5.67:43182] mod_wsgi (pid=11268): Target WSGI script '/opt/python/current/app/pronet/src/pronet/wsgi.py' cannot be loaded as Python module.
[Thu Oct 20 17:47:01.340603 2016] [:error] [pid 11268]
[remote 172.31.5.67:43182] mod_wsgi (pid=11268): Exception occurred processing WSGI script '/opt/python/current/app/pronet/src/pronet/wsgi.py'.
[Thu Oct 20 17:47:01.340653 2016] [:error] [pid 11268] [remote 172.31.5.67:43182] Traceback (most recent call last):
[Thu Oct 20 17:47:01.340701 2016] [:error] [pid 11268]
[remote 172.31.5.67:43182] File "/opt/python/current/app/pronet/src/pronet/wsgi.py", line 12, in <module>
[Thu Oct 20 17:47:01.340706 2016] [:error] [pid 11268]
[remote 172.31.5.67:43182] from django.core.wsgi import get_wsgi_application
[Thu Oct 20 17:47:01.340728 2016] [:error] [pid 11268]
[remote 172.31.5.67:43182] ImportError: No module named 'django'
ссылка на проект github. Вы можете просмотреть весь код здесь
Комментарии:
1. включена ли у вас отладка в
settings.py
? Если да, то какова обратная трассировка там?2. включите
DEBUG
, чтобы увидеть ошибку в консоли3. Я включил отладку, но я все еще получаю ту же ошибку «модуль django не найден». Есть идеи, почему?
4. парень из 2022 года: я решил, установив SECRET_KEY env из EB environment-> Configuration-> Software-> Свойства среды
Ответ №1:
Вы это сделали?
pip freeze > requirements.txt
Если вы этого не сделали, AWS не будет знать, что она должна установить Django и другие зависимости на ваши экземпляры EC2 для вашего развертывания.
Ответ №2:
В моем случае ошибка с sqllite
Удалите настройки базы данных изsettings.py и попробуйте развернуть
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
А затем я настроил AWS RDS.
Комментарии:
1. Это было и для меня. Версия OS sqlite была слишком низкой для адаптера, который я использовал..
2. итак, вы удалили весь
DATABASES
объект из settings.py ?3. Нет. Просто измените его, как указано выше. движок и путь, упомянутые выше.