0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Django入門03(リリース編)

Posted at

環境ごとに設定ファイル(settings)を変える

ローカル環境、開発サーバー、本番サーバーで設定を切り替える為の変更。
基本的に以下ページの通り。
Djangoプロジェクト構造のカスタマイズ(分割と構造化)

configディレクトリのリネーム

  • settings.pyが含まれるフォルダの名前を変更する
  • manage.pyの中の os.environ.setdefault を変更する

settingsの分割

  • settings.pyから共通部分を抜き出してbase.pyとする
  • 共通ではない部分をdevelopment.pyやproduction.pyとする
  • development.pyやproduction.pyに from .base import * を記述し、共通部分を読み込むようにする
  • manage.pyの中のos.environ.setdefaultを変更する

Djangoサーバー起動時の設定ファイル指定方法

--settingsで切り替える。

python manage.py runserver 0.0.0.0:8000 --settings=config.settings.production

AWSで動かす場合の注意点

起動時は --daemon をつける

--daemon をつけないとEC2インスタンスにアクセスしているterminal(teratermなど)のプロセスを落とした瞬間にサーバー側のプロセスも落ちてしまう。

gunicorn config.wsgi --bind=0.0.0.0:8000 --env DJANGO_SETTINGS_MODULE=config.settings.development --daemon

wsgiファイルにもmysqlライブラリをimportすべし

wsgiファイルにもmysqlライブラリ(pymysqlなど)をimportしておかないと、gunicornから起動する際にmysqlに接続できずにエラーになる。

import os
import pymysql
pymysql.install_as_MySQLdb()
from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings.development')

application = get_wsgi_application()

staticディレクトリを参照する際の注意

nginxの設定変更

/etc/nginx/nginx.conf にstaticの参照設定の追記が必要。
パスを書き込む際 (app name) までの指定でよく、(app name)/static までは不要。

location /static/ {
             root /home/ec2-user/(app name);
        }

設定変更後は nginx の再起動が必要。

sudo nginx -s reload
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?