以前も一度この内容は投稿したが、項目のみ時系列の羅列だったので、今回は昨日作成した「投票アプリ」をデプロイしながら、もう少ししっかりまとめる。
デプロイした投票アプリはこちら
開発・本番環境を分ける
- 「.gitignore」作成
- 「setting.py」:SECRET_KEY 削除(「local_settings.py」に記載)
- 「setting.py」本番環境のDEBUG = False
- 「setting.py」ローカル用設定追記

local_settings.py
開発環境では DEBUG = True としておく。先ほど settings.py から切り取ったSECRET_KEY を貼り付ける

vultrにインスタンス

SSHでユーザ作成をし、管理者権限を与え、ユーザーでログインしたら、update / upgradeして最新の環境にしておく。


nginx, pip, venv のインストール

srcフォルダ作成 =>Remote SSH
「src」フォルダ作成後、Remote SSH 接続(Remote SSH: Connect to Host で 「ssh yamaco@xxx.xxx.xxx 」で、先ほど作成した「src」フォルダを開く

git clone
githubのコードをコピーして、vultr に clone


仮想環境・upgrade・requirements.txt・nginxフォルダ
仮想環境構築(python3 -m venv myvenv) 後、myvenvに入り、最新のコマンドにアップデートしておく(pip3 install –upgrade pip setuptools)。「requirements.txt」 をインストール。「nginx」用フォルダ作成



「.env」環境変数を設定してコマンドを実行するときに使う
「SECRET_KEY」「ALLOWED_HOSTS」共に、「=」前後のスペース不要。また、「 ‘ ‘」も削除しておく。

django.core.exceptions.ImproperlyConfigured: Set the SECRET_KEY environment variable
「python3 manage.py migrate」でエラーが出てしまった~! これ、以前にも見たことあるけど、どうやって修正したか、完全に忘れるお年頃。。。
う~ん。。。
よくみたら、「.env」ファイルが、「src」直下「polls」と同位にあった(笑)。「polls」内に格納したら、マイグレートできた!


cssが反映されていない!
「python3 manage.py runserver」でサーバを起動してみると、navbarがおかしなことに。。。cssが反映されていない!

- 「sudo python3 manage.py collectstatic」=>131 static files copied to ‘/usr/share/nginx/html/static’.
- 「sudo nano /etc/nginx/sites-available/default」(nginx修正)

nginx restart
nginx をリスタートすると、vultr のIPアドレスで無事に表示できた。


サーバの起動・停止・再起動をシステムコントロールに登録する
sudo nano /etc/systemd/system/poll_project.service
以下、登録内容です
[Service]
WorkingDirectory=/home/yamco/src/poll_project
EcexStart=/home/yamaco/src/poll_project/myvenv/bin/bunicorn –bind 127.0.0.1:8000 poll_project.wsgi:application
- サーバの開始:sudo systemctl start poll_project
- 状況確認:sudo systemctl statud poll_project
- サーバの停止:sudo systemctl stop poll_project
- サーバの再起動:sudo systemctl restart poll_project
ドメイン取得
以前購入して、使っていないドメインがあったので、ネームサーバに vultr を設定。

- vultr側でも DNS =>ドメイン設定
- 「.env」ファイルの「ALLOWED_HOSTS」に取得したドメインを追加

ドメインで表示できたが、「セキュリティ保護なし」

HTTPS化する
- sudo apt-get install letsencrypt
- sudo letsencrypt certonly –standalone -d ask946.info
- nginx をHttps用に書き換え(sudo nano /etc/nginx/sites-available/default)<=サーバをドメイン名に変更

無事に https://ask946.info で表示された! でもスマホだと、レイアウトが崩れてブサイクに。。。
cssは明日修正しよう~
皆さんもぜひ、「たなたの質問を作成」し、投票に参加して下さいね!
お待ちしています!!