サーバ構築メモ(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