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

cloverrose's blog

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

Djangoのデプロイへの道5 まとめ

Django Apache

4回に分けてDjangoプロジェクトをApacheで動かすところまでやったのでまとめてみる

基本的な設定

  • emacsのインストール
$ sudo apt-get install emacs23
  • 日本語の文字化けを解消
$ sudo emacs ~/.bashrc

case $TERM in
linux) LANG=C ;;
*) LANG=ja_JP.UTF-8 ;;
esac

$
$ logout

sudo apt-get installするもの一覧

  • python-django 基本
  • mysql-server MySQLを使うなら必要(SQLiteを使うならPythonに組み込まれているので不要)
  • python-mysqldb PythonからMySQLにアクセスするのに必要
  • apache2 Apacheで動かす際に必要
  • libapache2-mod-wsgi Apacheで動かす際に必要

Djangoプロジェクト作成の一連の流れ

$ mysql -u root -p
mysql> create database mydb;
mysql> exit;
$
$ django-admin startproject mysite
$ cd mysite
$ sudo emacs settings.py

'ENGINE': 'mysql'
'NAME': 'mydb'
'USER': 'root'
'PASSWORD': ''

'django.contrib.admin',

$
$ sudo emacs urls.py

from django.contrib import admin
admin.autodiscover()

url(r'^admin/', include(admin.site.urls)),

$
$ python manage.py syncdb
$
$ python manage.py runserver&
$ w3m http://localhost:8000/admin

デプロイの一連の流れ

$ sudo emacs /etc/apache2/httpd.conf

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

$
$ mkdir apache
$ cd apache
$ sudo emacs 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()

$ w3m http://localhost/admin

発展事項

localhost以外で動作させる←Apacheの設定普通にLANからアクセスできた
静的ファイルの提供←Djangoの設定/etc/apache2/httpd.confの設定だった
以前自分が作ったプロジェクトを実際にデプロイ←print文の削除が必要らしいのでlogging利用