Django + EC2 + Apache 给出服务器错误 500

Django + EC2 + Apache giving SERVER ERROR 500

我在本地开发了一个 Django 项目,一切正常。

我将它与 Apache2 一起部署在 EC2 Ubuntu 实例上,它给出了服务器错误 500。我也尝试过使用 gunicorn+nginx,但仍然不满意。

作为上下文,我使用 Django4、Python3、Apache2 以及;

  1. 用于 postgres 数据库的 AWS RDS
  2. 用于静态文件的 AWS S3 (两者都在本地开发和生产模式下工作正常)。

我还将我的 EC2 IP 地址添加到 ALLOWED_HOSTS 并且仍然相同(如果我通过 * 允许所有内容,也会出现相同的错误)。

注意:我的所有凭据都在 .env 文件中。

Django 应用程序不提供访问权限。

我实际上想从 CertBot 获取 SSL 并分配我购买的 .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>

谢谢。

更新: Debug = False

的错误日志
[Fri Apr 15 12:36:03.370447 2022] [mpm_event:notice] [pid 35855:tid 139942111996992] AH00489: Apache/2.4.41 (Ubuntu) OpenSSL/1.1.1f mod_wsgi/4.6.8 Python/3.8 configured -- resuming normal operations
[Fri Apr 15 12:36:03.370541 2022] [core:notice] [pid 35855:tid 139942111996992] AH00094: Command line: '/usr/sbin/apache2'

Debug = True 的错误日志

Exception ignored in: <function Local.__del__ at 0x7fd92c735700>
Traceback (most recent call last):
  File "/home/ubuntu/liveProject/liveEnv/lib/python3.8/site-packages/asgiref/local.py", line 96, in __del__
NameError: name 'TypeError' is not defined
Exception ignored in: <function Local.__del__ at 0x7fd92c735700>
Traceback (most recent call last):
  File "/home/ubuntu/liveProject/liveEnv/lib/python3.8/site-packages/asgiref/local.py", line 96, in __del__
NameError: name 'TypeError' is not defined

access.log

<my_ip> - - [15/Apr/2022:12:39:28 +0000] "GET / HTTP/1.1" 400 5208 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36"
<my_ip> - - [15/Apr/2022:12:39:48 +0000] "-" 408 4737 "-" "-"
<my_ip> - - [15/Apr/2022:12:39:48 +0000] "-" 408 4737 "-" "-"
<my_ip> - - [15/Apr/2022:12:40:33 +0000] "GET / HTTP/1.1" 400 5208 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36"
49.14.87.5 - - [15/Apr/2022:12:40:36 +0000] "GET / HTTP/1.1" 400 794 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36"
<my_ip> - - [15/Apr/2022:12:40:56 +0000] "-" 408 323 "-" "-"
<aws_ip> - - [15/Apr/2022:12:40:56 +0000] "-" 408 4737 "-" "-"
<aws_ip> - - [15/Apr/2022:12:41:14 +0000] "GET / HTTP/1.1" 400 5209 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.83 Safari/537.1"
<aws_ip> - - [15/Apr/2022:12:41:34 +0000] "GET / HTTP/1.1" 301 580 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.83 Safari/537.1"
<aws_ip> - - [15/Apr/2022:12:41:56 +0000] "-" 408 4738 "-" "-"

尝试加入虚拟主机

WSGIApplicationGroup %{GLOBAL}

我已经确定了问题,现在已经修复了,终于在 2 天多之后。

没什么,apache 或 django 没有从我的 .env 文件中填充值。就像 .env 文件没有退出一样。

我将每个值直接替换为 settings.py 并且有效。

我现在必须看看如何定义我的敏感凭据远离 settings.py

谢谢。