Edited at

DjangoGirlsで作ったWebアプリを、ConoHa VPSでデプロイ


はじめに

【DjangoGirlsのチュートリアル】 を終えた。

 ↓

次はオリジナルのWebアプリを作って公開したい。

 ↓

どこかサクッと構築できる本番環境ないかな...?

 ↓

ConoHa VPSのメニューの中に 「アプリケーション -> Django」 を見つけた!

というわけで、ConoHa VPSでDjango Webアプリのデプロイをやってみました。


前提条件

DjangoGirlsのチュートリアルのデプロイのところまで実施済み

・Unixのviコマンドを使って簡単なファイル編集ができる


環境


ローカル側(Mac)

・Python:3.6.4

・virtualenv他:DjangoGirlsチュートリアルに従っています。


サーバー側(ConoHa VPS)

・CentOS:7.5

・Python:3.6.5

・Django:2.0.6


デプロイ対象のプロジェクト名(Directory名)

djangogirls


手順


1. ConohaにDjango入りサーバーを追加


1.1. Conoha VPSにログイン

・ConoHa が初めての方は新規登録してください。

  (→こちらから登録するとお友だち特典あり

ConoHa VPS にログインしてください。


1.2. Django入りサーバーを追加する

・左側メニューの一番上 「サーバー追加」



・サービスは「VPS」→プランはお好みのものを(ここでは最低額の512MBプランを選択)

・イメージタイプは「アプリケーション」→「他のアプリケーションを見る」→「Django」



・rootパスワード、ネームタグ(例:vps-django)を入力。



・他は何も変更せず、右の「追加」を押す



・数分以内にサーバーが出来上がり、サーバ一覧の表示に変わります。

   「ネットワーク情報」→「IPアドレス」をメモしてください。


2. ConohaのSSH関連を設定

下記サイトなどを参考に、SSHログイン、rootログイン禁止、SSHポート番号変更までを行ってください。

参考サイト1:

https://qiita.com/ongaeshi/items/bb17ebfbd4d22057c8fd

(SSHポート番号変更の手前まで)

参考サイト2:

https://weblabo.oscasierra.net/openssh-sshd-centos7-change-port/

(SSHポート番号変更)


3. Conoha上でプロジェクトを作成


3.1. プロジェクトのDirectoryを作成

・Conoha VPSにSSHでログインしてください

ログインするとこういう画面が出ます。

================================================

Welcome to Django application!

Sample Application: /home/django/sample
Sample Application Username: xxxxxxxxxxxxxxxx
Sample Application Password: xxxxxxxxxxxxxxxx
URL: http://XXX.XXX.XXX.XXX/
MySQL root password: xxxxxxxxxxxxxxxx

Enjoy!
================================================

この中の

Sample Application:    /home/django/sample

で示されたDirectoryのひとつ上に行って、隣に新しく djangogirls Directoryを作ってください。

$ cd /home/django/

$ sudo mkdir djangogirls

作成したDirectoryのグループとパーミッションを変更してください。

$ sudo chgrp apache djangogirls

$ sudo chmod 775 djangogirls


3.2. コードを持ってくる

引き続きサーバ上で作業。git cloneでコード一式を持ってきてください。

$ cd /home/django/djangogirls

$ sudo git clone https://github.com/khashi001/djangogirlTutorial.git .

httpから先の部分は、ご自分のリポジトリに合わせて書き換えてください。


3.3. DataBaseを作る

DjangoGirlsチュートリアルの通りに実施した場合、まだDabaBaseファイル db.sqlite3が無いので、作成してください。

$ sudo python3.6 manage.py migrate

$ ls

続いてパーミッション等を変更してください。

$ sudo chgrp apache db.sqlite3

$ sudo chmod g=rw db.sqlite3


3.4. superuserを設定する

$ sudo python3.6 manage.py createsuperuser


3.5. サーバーのIPアドレスをDjangoアプリのsetting.pyに設定する

$ sudo vi mysite/settings.py

ALLOWED_HOSTS に、 'xxx.xxx.xxx.xxx'(ConoHa サーバーのIDアドレス)を追加してください。

ALLOWED_HOSTS = ['127.0.0.1', 'localhost','xxx.xxx.xxx.xxx']


4. Apacheの設定を変更する

$ sudo vi /etc/httpd/conf/httpd.conf

/home/django/sample が用いられている箇所を書き換えてください。

変更前

WSGIScriptAlias / /home/django/sample/sample/wsgi.py

WSGIPythonPath /home/django/sample

変更後

WSGIScriptAlias / /home/django/djangogirls/mysite/wsgi.py

WSGIPythonPath /home/django/djangogirls

変更前

<Directory /home/django/sample/sample>

<Files wsgi.py>
Require all granted
</Files>
</Directory>

変更後

<Directory /home/django/djangogirls/mysite>

<Files wsgi.py>
Require all granted
</Files>
</Directory>

書き換えおわったら、サービスを再起動してください。

$ sudo service httpd restart


5. 確認

ブラウザで http://xxx.xxx.xxx.xxx

にアクセス。(xxx.xxx.xxx.xxx はサーバーのIPアドレス)

DjangoGirlsのチュートリアルで作成した内容が見えたらOKです。

ただしDataBaseは空っぽなので、個々の記事は表示されません。

http://xxx.xxx.xxx.xxx/admin にログインして、新しく作成し直しましょう。