【Django】Centos・Apache・MySQLでの環境構築メモ

はじめに

Djangoに付随の開発サーバーではなく、
CentOS + Apache + MySQLでの開発環境を作ろうとしたら意外と時間かかってしまった。。。なので手順をメモ

ApacheMySQL

ApacheMySQLをインストール

root> yum install -y http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
root> yum install -y httpd mysql-community-server (mysql-devel)

MySQLの初期設定をざっと行う

root> mysql_install_db --datadir=/var/lib/mysql --user=mysql
root> service mysqld start
root> mysql_secure_installation

MySQLにログインしてDjangoで作るアプリ用のデータベースを作っておく

mysql> CREATE DATABASE django DEFAULT CHARACTER SET utf8;

PyThon3

CentOS6.7だとデフォルトで入っているPythonのバージョンが2.6だったので最新をインストールする

Python3をインストール

# makeで必要なパッケージ
root> yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

# ソースコードダウンロード
root> cd /usr/local/src/
root> wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
root> tar xvfz Python-3.5.2.tgz
root> cd Python-3.5.2.tgz

# インストール
root> ./configure --enable-shared
root> make && make install

# シンボリックリンク
root> ln -s /usr/local/bin/python3 /usr/local/bin/python
root> ln -s /usr/local/bin/pip3.5 /usr/local/bin/pip
root> ln -s /usr/local/lib/libpython3.5m.so.1.0 /lib64/

Django

PythonでWebアプリフレームワーク
よく知らないけどPythonフレームワークでは1番有名ぽい。

Djangoをインストール

> sudo /usr/local/bin/pip install django
> mkdir /path/to/django
> cd /path/to/django

Djangoプロジェクトを作成

> django-admin startproject project

MySQLドライバをインストール

root> /usr/local/bin/pip install PyMySQL

データベース設定(MySQL)

project/project/settings.py

DATABASES = {
    'default': {
                'ENGINE': 'django.db.backends.mysql',
                'NAME': 'db_name',
                'USER': 'user_name',
                'PASSWORD': 'password',
                'HOST': 'localhost',
                'PORT': '3306',
    }
}

PyMySQLを使う形に

project/manage.py

import pymysql
pymysql.install_as_MySQLdb()

Django用データベースのセットアップ
※管理サイトとかを使うのに必要なテーブルを作ってくれる

> python project/manage.py migrate
> python project/manage.py createsuperuser

mod_wsgiのインストール
※mod_phpみたいなものかと思ってる

# ダウンロード
root> wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.5.5.tar.gz
root> tar xvfz 4.5.5.tar.gz
root> cd mod_wsgi-4.5.5

# apxsを使うためにインストール
yum install httpd-devel

# インストール(なぜかmakeで1回目こけて再度configureをやり直したらうまくいった)
./configure --with-apxs=/usr/sbin/apxs --with-python=/usr/local/bin/python
root> make && make install

/etc/httpd/conf/httpd.conf

LoadModule wsgi_module modules/mod_wsgi.so
WSGIScriptAlias / /path/to/django/project/project/wsgi.py

<Directory /path/to/django/project/project>
  <Files wsgi.py>
      Order deny,allow
      Allow from all
  </Files>
</Directory>

PyMySQLを使う形に

project/wsgi.py

import sys

import pymysql
pymysql.install_as_MySQLdb()

sys.path.append('/path/to/django/project')

おわり

他のサイト見ながらそのままやっただけなんだけどやっぱり環境の違いとかですんなりいかなかった。
環境作るだけでこれだと先が思いやられる。。。

以上です