LoginSignup
1
2

More than 3 years have passed since last update.

初心者がdjangoで作ったアプリをサーバーへデプロイしてみたいので環境整えるところまで

Last updated at Posted at 2019-08-19

環境と背景

MacOS Mojave / CentOS7 / VirtualBox / iterm2

学習の中でせっかくwebアプリを作ったのでデプロイしたい。

VPSなど自分で管理するサーバーへデプロイする方法をMemo

セキュリティ関連の知識は別で蓄える必要があるようなので、ここではデプロイまでのプロセスとして。

必要物を集める

VirtualBox
https://www.virtualbox.org/にアクセスしてダウンロード。

スクリーンショット 2019-08-19 12.51.24.png

間違えようがないくらいデカいボタンがあるけど一応スクショ。

スクリーンショット 2019-08-19 12.52.17.png

急に文字文字し出すので、「VirtualBox 6.0.10 platform packages」の欄を見て該当の利用OSを選択。Macなので「OS X hosts」。

完了したら、そのままインストールでOKかと。

ちなみにVirtualBoxを一言で解説すると
PCに仮想環境を構築して、他のOSをインストールすることができる仮想化ソフトのこと。

(仮想の)パソコンをもう一個持つようなイメージかな。


CentOS
https://www.centos.org/にアクセスしてダウンロード。

スクリーンショット 2019-08-19 13.08.00.png

こちらも大きなボタンがあるので問題なし。

スクリーンショット 2019-08-19 13.09.27.png

DVD ISOだとフルパッケージだけどまぁ重い。。。ひとまずMinimalで様子をみる。

スクリーンショット 2019-08-19 13.16.21.png

Oh!激しい文字文字感が。。。

上部のブロックは住んでる地域に近いところで提供してくれているものらしい。ということは下部は遠いってこと。

たしかに、上部のブロックのアドレスを見てみると tsukuba とか yamagata って書いてある。

こういう分散して同じものなのに、あっちこっちからダウンロードできるようになっているものを「ミラーサイト」と呼んでいて、一箇所に集中することで高負荷になってしまうことを避けるための仕組みになっている。

多少、免疫がつくまでは違和感しかなかった。


その他
vagrantという素晴らしいツールがあるそうだが一旦ここでは使わない方向で。


VirtualBoxにCentOSをインストール準備

VirtualBoxを立ち上げて「新規」のボタンを押すと「名前」の入力を求められるので「CentOS 7」などと入力。下のプルダウンも勝手に変わってくれた。

スクリーンショット 2019-08-19 13.25.58.png

基本は次への連打で良いと思うけど流石に最後の8GBは悩んだが一応そのままで。

スクリーンショット 2019-08-19 13.28.37.png

スクリーンショット 2019-08-19 13.28.47.png

スクリーンショット 2019-08-19 13.28.55.png

スクリーンショット 2019-08-19 13.29.02.png

スクリーンショット 2019-08-19 13.29.13.png

終わったら「設定」アイコンを押して、ストレージを選択。

スクリーンショット 2019-08-19 13.33.16.png

光学ドライブと書いてある場所の右側、おそらくCDと思われる青いアイコンを押して、ファイルを選択を押す。

先ほどダウンロードしておいたCentOS(拡張子ISO)を選んで「OK」

スクリーンショット 2019-08-19 13.37.14.png

次にネットワークのアイコンを選んで
「アダプター2」のネットワークアダプターを有効にして、「ブリッジアダプター」を選んで「OK」。


起動してOSインストール

起動のアイコンを押して起動。

起動するとターミナルのような画面になるので
スクリーンショット 2019-08-19 16.05.00.png

「Install CentOS 7」 を選択。

この時、ポップアップが出てくるので「capture」を選択しておく。

これで「PC本体画面」と「VirtualBox内の画面」のマウスがそれぞれ選択できるようになる。

左側の⌘キーでどちらのマウスを動かすか、変更が可能。

スクリーンショット 2019-08-19 16.12.41.png

まずは言語選択で日本語を選択。

スクリーンショット 2019-08-19 16.14.18.png

ここで「インストール先」を選択して、特に設定は変更しなくて良いので、完了ボタンを押すと、さっきまであった「!マーク」が消える。

「ソフトウェアの選択」を選ぶと、上記のOSインストール時に「Minimal」なら選択できないが、「DVD」を選んだ場合には「開発ツール」というソフトもチェックできるようになる。

ちなみに。
Minimalを選んだ場合にも「開発ツール」はインストール可能。(後ほど)

スクリーンショット 2019-08-19 16.23.50.png

インストールをしている間にROOTパスワードと、ユーザーの作成が可能になるので登録しておく。

インストールが完了すると「再起動ボタン」が出るので再起動する。


インストール後の初期設定

再起動するとユーザー名とパスワードを求められるので、先ほど設定したもの入力して起動。

シャットダウンとかは管理者権限がないとできないので、

$ SU

としてパスワードを入力。コマンドの前の「$」が「#」になる。
「#」になっていればrootユーザーということ。

元のユーザーに戻るには

# exit

終了するには

# shutdown -h now

しばらくかかってVirtualBoxのTOP画面に戻る。


事前の環境構築

ターミナルからIPアドレスでSSH接続

先ほどシャットダウンしているので、再度、起動アイコンを押して立ち上げる。登録userでログインしておく。

$ ip addr

これで接続されているIPアドレスを確認しておく。

いくつかそれっぽいのが見えるけど、一番下段の方のIPが示しているもの。

ターミナルを立ち上げて

$ ssh user@xxx.xxx.xx.x

userはユーザー名
xxxはIPアドレスを入力。

接続後にPythonのバージョンを確認してみると

$ python -V

なんと2系。。。

ここからは
・3系をインストールする準備物
・python3系のインストール
・pipのインストール
・venvのインストール
・venvで環境設定

ということで「IUS」というRedHatやCentOSなど向けに新しいRPM(ソフトウェアパッケージ管理ツール)を提供しているリポジトリがあるので追加。

$ su

でスーパーユーザーに切り替えて
3系をインストールする準備物

# yum install -y https://centos7.iuscommunity.org/ius-release.rpm
# yum install epel-release

python3系のインストール

# yum install python36u

pipのインストール

# sudo yum install python2-pip

更新メッセージが出ていたら最新にしておく。

# pip install --upgrade pip

venvのインストール

# pip install virtualenv

おまけ
Cent OS のところで「開発者ツール」を入れたいと思ったら

# yum groupinstall "Development Tools"

いくつか不足しているらしいのでさらに。

# yum -y install openssl openssl-devel readline-devel zlib-devel curl-devel libyaml-devel flex libxml2-devel zlib-devel libpng-devel libjpeg-devel libXpm-devel freetype freetype-devel

デプロイ前の準備

デプロイするディレクトリを作る。

# mkdir -p /opt/django
# cd /opt/django
# virtualenv -p python3.6 sns

「opt」や「django」は任意の名前。「sns」は任意のプロジェクト名。

ここで作った「sns」ディレクトリに移動すると「bin」ディレクトリもできているので

# source bin/activate

でvenv環境に入ることができる。(以前の記事はこちら

Gitもインストール

(sns)# yum install git

クローン:Gitのリポジトリの内容をそのまま持ってくること

(sns)# git clone https://xxx.xxx

xxxは自身のものに合わせて。Bitbucketならリポジトリに入った上部に記載してあるURL。

Djangoもインストールしておく

(sns)# pip install django

長くなりそうなので、ひとまずここまで。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2