【Django】Centos・Apache・MySQLでの環境構築メモ
ApacheとMySQL
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
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')
おわり
他のサイト見ながらそのままやっただけなんだけどやっぱり環境の違いとかですんなりいかなかった。
環境作るだけでこれだと先が思いやられる。。。
以上です