vultrデプロイ(再)

pollapp

以前も一度この内容は投稿したが、項目のみ時系列の羅列だったので、今回は昨日作成した「投票アプリ」をデプロイしながら、もう少ししっかりまとめる。

デプロイした投票アプリはこちら

開発・本番環境を分ける

  1. 「.gitignore」作成
  2. 「setting.py」:SECRET_KEY 削除(「local_settings.py」に記載)
  3. 「setting.py」本番環境のDEBUG = False
  4. 「setting.py」ローカル用設定追記

local_settings.py

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

vultrにインスタンス

  1. アカウント作成
  2. Ubuntu 18.04 -> deploy now
  3. SSHキーfirewallは予め作成していたものを割り当てた

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が反映されていない!

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

nginx restart

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

サーバの起動・停止・再起動をシステムコントロールに登録する

sudo nano /etc/systemd/system/poll_project.service

gunicorn公式ドキュメント参照

日本語でgunicornをまとめているサイト

以下、登録内容です

[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

  1. サーバの開始:sudo systemctl start poll_project
  2. 状況確認:sudo systemctl statud poll_project
  3. サーバの停止:sudo systemctl stop poll_project
  4. サーバの再起動:sudo systemctl restart poll_project

ドメイン取得

以前購入して、使っていないドメインがあったので、ネームサーバに vultr を設定。

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

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

HTTPS化する

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

無事に https://ask946.info で表示された! でもスマホだと、レイアウトが崩れてブサイクに。。。

cssは明日修正しよう~

皆さんもぜひ、「たなたの質問を作成」し、投票に参加して下さいね!

お待ちしています!!