読者です 読者をやめる 読者になる 読者になる

cloverrose's blog

Python, Machine learning, Emacs, CI/CD, Webアプリなど

Djangoのデプロイへの道4

Django Apache

mod-wsgiのインストール

http://packages.ubuntu.com/precise/allpackagesからlibapache2-mod-wsgiを見つけて、
http://packages.ubuntu.com/precise/libapache2-mod-wsgi

$ sudo apt-get install libapache2-mod-wsgi

httpd.confの設定

$ sudo emacs /etc/apache2/httpd.conf

httpd.conf(初期状態は空)に以下を追加

WSGIScriptAlias / /home/rose/mysite/apache/django.wsgi

django.wsgiの設定

$ cd ~/mysite
$ mkdir apache
$ sudo emacs apache/django.wsgi

django.wsgiを以下のように記述

import os
import sys
sys.path.append('/home/rose')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

mysql-serverのインストール

$ sudo apt-get install mysql-server

促されるままにパスワードの設定もする

python-mysqldbのインストール

これをインストールしないとpython manage.py syncdbすらできない

$ sudo apt-get install python-mysqldb

mysqlのデータベースを作成

$ mysql -u root -p
先ほど設定したパスワード
mysql> create database mydb;
mysql> exit;

settings.pyの設定

$ sudo emacs ~/mysite/settings.py

DATABASESの設定を次のように変更

'ENGINE': 'mysql'
'NAME': 'mydb'
'USER': 'root'
'PASSWORD': '先ほど設定したパスワード'

初めてのsyncdb

$ python manage.py syncdb

促されるままにsuoeruserを作成

adminサイトを有効にする

settings.pyの編集

$ sudo emacs settings.py

以下の一箇所のコメントアウトを解除

'django.contrib.admin',

urls.pyの編集

$ sudo emacs urls.py

以下の二箇所のコメントアウトを解除

from django.contrib import admin
admin.autodiscover()
[...]
url(r'^admin/', include(admin.site.urls)),

sycndbをする

python manage.py syncdb

adminサイトの確認

python manage.py runserver&
w3m http://localhost:8000/admin
kill %1

apacheで動くか確認

w3m http://localhost/admin

OK