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


# はじめに
[【DjangoGirlsのチュートリアル】](https://tutorial.djangogirls.org/ja/) を終えた。
　↓
次はオリジナルのWebアプリを作って公開したい。
　↓
どこかサクッと構築できる本番環境ないかな...?
　↓
ConoHa VPSのメニューの中に 「アプリケーション -> Django」 を見つけた！

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

# 前提条件
・[DjangoGirlsのチュートリアルのデプロイのところ](https://tutorial.djangogirls.org/ja/deploy/)まで実施済み
・Unixのviコマンドを使って簡単なファイル編集ができる

# 環境
##ローカル側(Mac)
・Python：3.6.4
・virtualenv他：[DjangoGirlsチュートリアル](https://tutorial.djangogirls.org/ja/)に従っています。

##サーバー側(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 にログイン](https://www.conoha.jp/login/?btn_id=vps-glonavi_login&service=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 にログインして、新しく作成し直しましょう。