こんにちは。のっくん(@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」と入力するとアクセス出来ます。
以上です。お疲れ様でした。