CentOS7でとりあえずDjangoを動かしてみたので、その手順を残す

Java以外の言語を書いたことがなかったので、過去に挫折したpythonをもう一度頑張ってみることにしたお話。

##環境
OS : CentOS 7
Python : Python3.6.3
Django : Django1.11.7


CentOS 7はMac上でvagrantを使い、VirtualBoxに構築。

## vagrantでCentOS 7を構築
(´・ω・｀)筆者は半年以上前のversionで構築したため、現行versionですんなり動作するかは不明
(´・ω・｀)詳しい構築方法は割愛します

VirtualBox をインストール
http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html?ssSourceSiteId=otnjp

Vagrantをインストール
https://www.vagrantup.com/

### Vagrantfileを作成
CentOS 7のBOXを利用したいので、こんな感じで書きました。

```ruby:Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.hostname = "forPython"
  config.vm.box = "centos/7"

  config.vm.network "private_network", ip: "192.168.33.30"
end
```
以下のコマンドを実行してCentOS 7を構築
`vagrant up`

以下のコマンドを実行して、ログインできることを確認する
`vagrant ssh`

```
Last login: Fri Nov 10 07:39:10 2017 from 10.0.2.2
[vagrant@forPython ~]$ 
```

(｀・ω・´)いい感じにログインできたっ！

## Python3.6をインストール
※筆者は以下をAnsibleでやらせました。ので、それのコマンド版を記載。
以下の手順で、Python3.6.3をインストゥール
・iusリポジトリをインストール
`# yum install https://centos7.iuscommunity.org/ius-release.rpm`

・Python3.6.3 をインストール
`# yum install python36u`

・pipもインストール
`# yum install python36u-pip`

(｀・ω・´)準備できたっ！

##Djangoをインストール
以下のコマンドで、Djangoをインストール
`# pip3.6 install Django`

念のためちゃんとインストールされたか確認

```
# ls /usr/lib/python3.6/site-packages/django/
__init__.py  __pycache__  bin   contrib  db        forms  middleware    template      test  utils
__main__.py  apps         conf  core     dispatch  http   shortcuts.py  templatetags  urls  views
```

(｀・ω・´)大丈夫だねっ！

##Djangoのプロジェクトを作成
作成方法は以下のサイトを参考にする。
https://docs.djangoproject.com/ja/1.11/intro/tutorial01/

・プロジェクトを配置するディレクトリを作成
`$ mkdir /home/vagrant/workspace/Django_project`

・そしてディレクトリへ移動
`$ cd /home/vagrant/workspace/Django_project`

・以下のコマンドを実行してプロジェクトを作成
`$ django-admin startproject mysite`

・プロジェクトの中身を確認

```
$ ls
mysite

$ ls mysite
db.sqlite3  manage.py  mysite

$ ls mysite/mysite
__init__.py  __pycache__  settings.py  urls.py  wsgi.py
```

(｀・ω・´)できてるねっ！

##開発用サーバを起動してアクセスしてみる
・開発用サーバを起動する

```
$ python3.6 manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).

You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

November 10, 2017 - 09:56:05
Django version 1.11.7, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
```

(´・ω・｀)こいつ、動くぞ・・・！

・別窓でCentOSへログインし、アクセス確認

```
$ curl 127.0.0.1:8000

<!DOCTYPE html>
<html lang="en"><head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta name="robots" content="NONE,NOARCHIVE"><title>Welcome to Django</title>
(以下割愛)
```

(´・ω・｀））おぉ、なんか帰ってきた！

・開発用サーバのログを確認

```
Performing system checks...

System check identified no issues (0 silenced).

You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

November 10, 2017 - 09:56:05
Django version 1.11.7, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[10/Nov/2017 09:58:11] "GET / HTTP/1.1" 200 1716
```

(´・ω・｀)うん、今さっきのアクセスで200を返したみたいだね！


## と、言うわけで
「**とりあえず**」Djangoを動かすことができました。
(´・ω・｀)数年前に一度チャレンジした時はど素人だったから、
ここまですら到達できなかったから素直に嬉しい。

これからこいつに玄関ページを作成して、機能を追加して遊べるように頑張って作り込んで行こう(∩´∀｀)∩