広告
DjangoをHerokuにデプロイしてもアプリケーションエラーになる時に見直すべきこと
デプロイは成功するが、アプリケーションエラーになる時、次の原因が考えられる。
重要なファイルがない
- Pipfile
- Pipfile.lock
- Procfile
- runtime.txt
- requirements.txt
これらはDjangoそのものと関係ないが、サーバーにデプロイする時に影響する。この5つのファイルはDjangoを動かすにあたってエラーになりやすいところ。
PostgreSQLなどのサーバー設定がない
PostgreSQLの場合、下のように設定する。
SECURE_SSL_REDIRECT = True
django_heroku.settings(locals())
DATABASES = {
'default': dj_database_url.config(
default='postgres://fktshfuksrhdvnkhc...'
)
}
db_from_env = dj_database_url.config()
DATABASES['default'].update(db_from_env)
postgres://fkt...はデータベースのアドレス。Herokuは最初からPostgreSQLを用意しており、そのアドレスも管理画面に表示されている。
manage.pyとwsgi.py
アプリをコピーして使いまわしている場合など、manage.pyは意外と見落としやすい。settingsはきちんと設定しているだろうか?
ALLOWED_HOSTS
ALLOWED_HOSTSにHerokuのドメインを設定していないとエラーになる。
広告
デプロイ
- DjangoのDEBUG=Falseでデプロイが失敗するときは、cssファイルにあるurl(../images/loading.gif)みたいなのにあった
- DjangoをDEBUG=Falseでデプロイできない:Server Error (500)が出る時の原因
- DjangoをHerokuにデプロイしてもアプリケーションエラーになる時に見直すべきこと
- Herokuに既存のアプリ(Django)をデプロイする
- DjangoでHerokuにデプロイしたもののアプリケーションエラーが出る時はProcfileにエラーがある可能性
- DjangoをHerokuにデプロイできない時はgunicornがインストールされていない可能性
広告
New
- Ubuntu に pyenv を利用して Python をインストールする
- 最強レンタルサーバーのmixhost(ミックスホスト):HTTP/3対応と爆速LiteSpeedがすごすぎる…
- サブのサイト・ブログのレンタルサーバーはリトルサーバーがぴったり:一つのレンタルサーバーに依存するのは危険という話
- 中級以上のアフィリエイターとブロガーはレンタルサーバーにエックスサーバーを選ぶ
- CentOS 7のPython 3.7.5はなぜかModuleNotFoundError: No module named ‘_ctypes’が出る
- Python データクラスの初期化関数(__post_init__)を使う