Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
10
Help us understand the problem. What is going on with this article?
@khashi001

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 にログインして、新しく作成し直しましょう。

10
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
khashi001
Illustrator, Creator, Programmer, Meditator

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
10
Help us understand the problem. What is going on with this article?