Django + EC2 + Apache дает SERVER ERROR 500
Я работал над проектом Django локально, и все работало нормально.
Я развернул его на EC2 Ubuntu вместе с Apache2, и он выдает серверную ошибку 500. Я пробовал и с gunicorn+nginx, все равно безрезультатно.
В качестве контекста, я использую Django4, Python3, Apache2 вместе с;
- AWS RDS for postgres DB
- AWS S3 for static files (Both are working fine in dev and prod mode locally).
Я также добавил IP адрес моего EC2 в ALLOWED_HOSTS и все то же самое (также получаю ту же ошибку, если разрешаю все через *).
Примечание: все мои учетные данные находятся в файле .env.
Почему-то приложение Django не предоставляет доступ.
На самом деле я хочу получить SSL от CertBot и присвоить купленный домен .dev.
Я действительно застрял здесь последние пару дней, просмотрел несколько блогов, но не смог решить эту проблему.
Любые предложения будут очень полезны.
Спасибо.
мой файл apache .conf
<VirtualHost *:80>
ServerAdmin admin@admin.com
ServerName <aws_public_ip_address>
ServerAlias <aws_public_ip_address>
DocumentRoot /home/ubuntu/liveProject/Django-Project
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /static /home/ubuntu/liveProject/Django-Project/static
<Directory /home/ubuntu/liveProject/Django-Project/static>
Require all granted
</Directory>
Alias /template /home/ubuntu/liveProject/Django-Project/tempate
<Directory /home/ubuntu/liveProject/Django-Project/tempate>
Require all granted
</Directory>
<Directory /home/ubuntu/liveProject/Django-Project/ProjectName>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess Django-Project python-path=/home/ubuntu/liveProject/Django-Project python-home=/home/ubuntu/liveProject/liveEnv
WSGIProcessGroup Django-Project
WSGIScriptAlias / /home/ubuntu/liveProject/Django-Project/ProjectName/wsgi.py
</VirtualHost>
Спасибо.
Попробуйте добавить виртуальный хост
WSGIApplicationGroup %{GLOBAL}
Я определил проблему и она устранена, наконец-то после более чем 2 дней.
Ничего не было, apache или django не заполняли значения из моего .env файла. Было похоже, что файл .env не выходит.
Я заменил все значения непосредственно в settings.py и все заработало.
Теперь мне придется посмотреть, как я могу определить свои конфиденциальные учетные данные вдали от settings.py
Спасибо.