実現したいこと
現在djangoで作成したアプリをデプロイしようと試みています。
利用しているものは、django5.0.2 gunicorn21.2.0 nginx1.24.0 (Ubuntu) postgresql15.6になります。
アプリをいったん公開するところまでは進んだのですが、開発サーバーでは管理画面にログインできていたのにnginxからではログインできず、必要情報を入力してログインボタンを押すともとのログインページにリダイレクトされてしまいます。
これを改善するために考えられる原因を教えていただきたいです。
adminページ以外のページではログインに関する部分以外は正常に動作しています。
こちらもログイン部分管理画面のようになってログインできないのですが、まず管理画面をどうにかしたいです。
発生している問題・分からないこと
djangoの管理画面にログインできない。
これといったエラーもあまり表示されないです。
djangoのログではpage not foundがwarningとして表示されています。
gunicorn nginxのほうではエラーが出ません。
ログイン画面の静的ファイルは普通に読み込めています。
知識ゼロから始めてまだ一月ほどなのでどの情報を調べればいいかは詳しくわからないので、必要情報があれば教えてください。
エラーメッセージ
error
1
該当のソースコード
settings.py
1DEBUG = False 2 3ALLOWED_HOSTS = ['IPアドレス','ドメイン名'] 4CSRF_TRUSTED_ORIGINS = ['https://ドメイン名'] 5SESSION_COOKIE_DOMAIN = 'ドメイン名' 6 7INSTALLED_APPS = [ 8 'django.contrib.sites', 9 'allauth', 10 'allauth.account', 11 'allauth.socialaccount', 12 'django.contrib.admin', 13 'django.contrib.auth', 14 'django.contrib.contenttypes', 15 'django.contrib.sessions', 16 'django.contrib.messages', 17 'django.contrib.staticfiles', 18 'アプリ名', 19 'accounts', 20] 21 22MIDDLEWARE = [ 23 'django.middleware.security.SecurityMiddleware', 24 'django.contrib.sessions.middleware.SessionMiddleware', 25 'django.middleware.common.CommonMiddleware', 26 'django.middleware.csrf.CsrfViewMiddleware', 27 'django.contrib.auth.middleware.AuthenticationMiddleware', 28 'django.contrib.messages.middleware.MessageMiddleware', 29 'django.middleware.clickjacking.XFrameOptionsMiddleware', 30 "allauth.account.middleware.AccountMiddleware", 31] 32 33SESSION_ENGINE = 'django.contrib.sessions.backends.cache' 34 35ROOT_URLCONF = 'main.urls' 36 37TEMPLATES = [ 38 { 39 'BACKEND': 'django.template.backends.django.DjangoTemplates', 40 'DIRS': [BASE_DIR / "templates"], 41 'APP_DIRS': True, 42 'OPTIONS': { 43 'context_processors': [ 44 'django.template.context_processors.debug', 45 'django.template.context_processors.request', 46 'django.contrib.auth.context_processors.auth', 47 'django.contrib.messages.context_processors.messages', 48 ], 49 }, 50 }, 51] 52 53WSGI_APPLICATION = 'main.wsgi.application' 54 55DATABASES = { 56 'default': { 57 'ENGINE': 'django.db.backends.postgresql_psycopg2', 58 'NAME': 'データベース名', 59 'USER': 'ユーザー名', 60 'PASSWORD': os.environ.get("pass_db"), 61 'HOST': 'localhost', 62 'PORT': '5432', 63 } 64 } 65 66 67AUTH_PASSWORD_VALIDATORS = [] 68 69 70 71LANGUAGE_CODE = 'ja' 72 73TIME_ZONE = 'Asia/Tokyo' 74 75USE_I18N = True 76 77USE_TZ = True 78 79STATIC_URL = '/static/' 80STATIC_ROOT = PARENT_DIR / 'site/public/static' 81 82MEDIA_ROOT = PARENT_DIR / 'site/public/media' 83MEDIA_URL = '/media/' 84 85 86 87DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' 88 89AUTH_USER_MODEL = 'accounts.User' 90 91 92AUTHENTICATION_BACKENDS = [ 93 'django.contrib.auth.backends.ModelBackend', 94 'allauth.account.auth_backends.AuthenticationBackend', 95] 96 97SITE_ID = 1 98 99 100ACCOUNT_FORMS = { 101 'signup': 'accounts.forms.CustomSignupForm', 102 'login': 'accounts.forms.CustomLoginForm', 103 'reset_password': 'accounts.forms.CustomResetPasswordForm', 104 'reset_password_from_key': 'accounts.forms.CustomResetPasswordKeyForm', 105} 106 107ACCOUNT_USER_MODEL_USERNAME_FIELD = None 108ACCOUNT_USERNAME_REQUIRED = False 109ACCOUNT_AUTHENTICATION_METHOD = 'email' 110ACCOUNT_EMAIL_REQUIRED = True 111 112from django.urls import reverse_lazy 113LOGIN_REDIRECT_URL = reverse_lazy('mypage') 114ACCOUNT_LOGOUT_REDIRECT_URL = reverse_lazy("top") 115ACCOUNT_EMAIL_VERIFICATION = "mandatory" 116ACCOUNT_LOGOUT_ON_GET = True 117 118 119EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 120EMAIL_HOST = 'smtp.gmail.com' 121EMAIL_PORT = 587 122EMAIL_USE_TLS = True 123EMAIL_HOST_USER = 'メールアドレス' 124EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_HOST_PASSWORD') 125DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
nginxのファイル
1server { 2 server_name ドメイン名; 3 4 location = /favicon.ico { access_log off; log_not_found off; } 5 location /static/ { 6 root パス; 7 } 8 9 location /media/ { 10 root パス; 11 } 12 13 location / { 14 include proxy_params; 15 proxy_pass http://unix:/run/gunicorn.sock; 16 } 17
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
データベースを新しく作成しなおしてそのデータベースを使用した。
migrationsを削除してからmakemigrationsとmigrateをやり直した。
補足
特になし
回答1件
あなたの回答
tips
プレビュー