【Django】VPSにデプロイする

 

こんにちは。のっくん(@yamagablog)です。

 

今回の記事では、DjangoアプリをさくらのVPS(Ubuntu 16.04)にデプロイする方法をご紹介します。

 

デプロイすることでインターネット上に公開されますのでみんなに見てもらうことができます。

 

まずは、UbuntuをVPSにインストールするところからやっていきましょう。

 

実行環境

・さくらのVPS、Ubuntu 16.04
・Django 2.1

 

[toc]

 

Ubuntuのインストール

 

さくらのVPSを契約していない人は下の記事を参考に契約してみて下さい。

 

https://ymgsapo.com/vps-ssh-login/

 

私の場合、デフォルトでインストールされているのはCentOS 6でした。以下の手順で新しくUbuntu 16.04をインストールしたいと思います。

 

さくらのVPSコントールパネルにアクセスすると以下のようにサーバの一覧が出ますので、クリックします。

 

 

右上の各種設定をクリックします。

 

 

以下のように標準OSを選択します。

 

 

パスワードはお好きなものを設定して下さい。スクリプトの設定がありますが、そのままでオッケーです。

 

 

これでOSがインストールできると思います。

 

プロジェクトのコピー

 

VPSコントロールパネルの中に「コンソール」がありました。そこにあるシリアルコンソール(ベータ版)を使って以下のコマンドを入力していきます。

 

#パッケージリストを更新
sudo apt-get update -y

# gitをインストール
sudo apt-get install -y git

# vimをインストール
sudo apt-get install -y vim

# レポジトリをクローン
git clone <repo>

 

<repo>はレポジトリのURLになります。開発したdjangoのプロジェクトがGithubにアップロードしてあるのが前提です。

 

PythonとDjangoのインストール

 

# 仮想環境の作成、venvという名前のディレクトリが作成されます
sudo apt-get install -y python3-venv
python3 -m venv venv

# 仮想環境をアクティベート
source venv/bin/activate

# python3 系になっていることを確認
python --version

# django をインストール
pip install django

 

FireWallの設定

 

sudo vim /etc/iptables/iptables.rules

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT <— 追加
-A INPUT -j REJECT --reject-with icmp-host-prohibited

# 設定を反映
sudo iptables-restore < /etc/iptables/iptables.rules

# 適用されているルールの確認
sudo iptables -L -n -v

# サーバを起動
python manage.py runserver 0.0.0.0:8000

 

最後の「0.0.0.0:8000」が無いと外部からアクセス出来ませんので注意してくださいね。

 

ブラウザで「http://VPSのIPアドレス:8000」と入力するとアクセス出来ます。

 

以上です。お疲れ様でした。

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog