django サーバ構築メモ(ベイグラント) S田とK村用

サーバ構築メモ(windows10 vagrant CentOS7.3 nginx Django)

0. 前提

  • 自分用メモ
  • windows10
  • virtualbox 5.2.12がインストールされていること
  • SSDを買えば幸せになれますか?(缶コーヒー10本分を会社のインスタントコーヒに変更するだけの簡単なお仕事)

▼参考 はじめての Django アプリ作成、その 1 | Django documentation | Django https://docs.djangoproject.com/ja/2.0/intro/tutorial01/

1. vagrantのインストール

以下よりダウンロードして、vagrant_2.1.1_x86_64.msiを実行する

https://www.vagrantup.com/downloads.html

2. centos7.3のboxダウンロード(10分程)

vagrant box add --name centos7.3 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.3/vagrant-centos-7.3.box

ここでエラーが出た場合、以下を実行する
vagrant plugin expunge --reinstall

3. フォルダを作成

mkdir vagrant
mkdir vagrant/spfp
cd vagrant/spfp

4. Vagrantfileの作成

vagrant init cent73

5. Vagrantfileの編集

▼以下を追記する

config.vm.box = "centos7.3"
#他のPCからも接続できるようにする。 
config.vm.network "public_network", ip: "192.168.11.77"

6. 起動

vagrant up

▼以下のエラーがでるが気にしない
/sbin/mount.vboxsf: mounting failed with the error: No such device

7. pluginの更新

vagrant plugin install vagrant-vbguest

vagrant vbguest

8. VMを停止する

vagrant ssh
sudo shutdown -h now

9. 再起動する

vagrant up
#今度はエラーが出ないはず。デsshログインするんダ!
vagrant ssh

10. OSの更新をする(10分程)

sudo yum update -y  
sudo yum install -y gcc zlib-devel bzip2 bzip2-devel readline readline-devel sqlite sqlite-devel openssl openssl-devel

11. pythonのインストール

cd /usr/local/src
sudo wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
sudo tar xzvf Python-3.6.5.tgz
cd Python-3.6.5
sudo ./configure
sudo make
sudo make altinstall
sudo ln -s /usr/local/bin/python3.6 /usr/bin/python3
sudo ln -s /usr/local/bin/pip3.6  /usr/bin/pip3

12. virtualenvの設定

sudo pip install virtualenv

vagrant ディレクトリ内に実行環境を構築する
cd ~
virtualenv --always-copy env

仮想環境の起動
source env/bin/activate

仮想環境の終了
deactivate

13. nginxのインストール

sudo vi /etc/yum.repos.d/nginx.repo

▼以下の内容でファイルを作成する
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

▼インストール
sudo yum install -y nginx

14. nginxの起動と自動起動設定

▼nginxの起動
[vagrant@localhost ~]$ sudo systemctl start nginx.service

▼自動起動設定
[vagrant@localhost ~]$ sudo systemctl enable nginx.service

▼別PC等からアクセスしてみる
http://192.168.11.77/

15. uWSGIとDjangoのインストール

▼仮想環境の起動
source env/bin/activate

▼uwsgiのインストール
(env) [vagrant@localhost ~]$ pip install uwsgi

▼Djangoのインストール
(env) [vagrant@localhost ~]$ pip install django

▼FWの停止
(env) [vagrant@localhost ~]$ sudo systemctl stop firewalld
(env) [vagrant@localhost ~]$ sudo systemctl disable firewalld

16. Djangoプロジェクトの作成

▼フォルダの作成
mkdir django_apps
cd django_apps/

▼プロジェクトの作成
django-admin startproject projectMoko

▼ALLOWED_HOSTSの設定
vi projectMoko/projectMoko/settings.py

▼以下の内容でホストのIPを設定する
ALLOWED_HOSTS = ['192.168.11.77']

▼起動する
python projectMoko/manage.py runserver 0.0.0.0:8000

▼ブラウザからアクセスしてみる
http://192.168.11.77:8000/

17. DBの初期化

python projectMoko/manage.py migrate    

▼Suの作成
python projectMoko/manage.py createsuperuser

Username (leave blank to use 'vagrant'): admin
Email address: kitamura@nagai.souda.com
Password:ruxxxxxx11
Password (again):ruxxxxxx11
Superuser created successfully.

18. フォルダ構成の確認

(env) [vagrant@localhost django_apps]$ pwd;find . | sort | sed '1d;s/^\.//;s/\/\([^/]*\)$/|--\1/;s/\/[^/|]*/|  /g'
/home/vagrant/django_apps
|--projectMoko
|  |--db.sqlite3
|  |--manage.py
|  |--projectMoko
|  |  |--__init__.py
|  |  |--__pycache__
|  |  |  |--__init__.cpython-36.pyc
|  |  |  |--settings.cpython-36.pyc
|  |  |  |--urls.cpython-36.pyc
|  |  |  |--wsgi.cpython-36.pyc
|  |  |--settings.py
|  |  |--urls.py
|  |  |--wsgi.py

19. DBの確認(sqlite3)

(env) [vagrant@localhost django_apps]$ sqlite3 projectMoko/db.sqlite3
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
auth_group                  auth_user_user_permissions
auth_group_permissions      django_admin_log
auth_permission             django_content_type
auth_user                   django_migrations
auth_user_groups            django_session
sqlite> .exit

20. 中断するけど再開のためのメモ

このあとは、雛型をBOX化してgoogle-driveに格納して、共有する予定だったので、メモを残すんダ

▼エクスポートコマンド
vagrant package --output sanaya_cent73.box

qiita.com

/* -----codeの行番号----- */