CentOS+mod_wsgiでDjangoを動かす
環境: VirtualBox on CentOS : 5.0 Apache : 2.2.3 mod_wsgi : リビジョン 204
- mod_wsgi を入手します。
$ svn checkout http://modwsgi.googlecode.com/svn/trunk/ modwsgi A modwsgi/configure A modwsgi/LICENCE A modwsgi/configure.ac A modwsgi/Makefile-1.X.in A modwsgi/Makefile-2.X.in A modwsgi/mod_wsgi.c A modwsgi/README U modwsgi リビジョン 204 をチェックアウトしました。
以下の手順で、簡単にインストールできます。
$ ./configure $ make # make install
(注)python-devel, apxsが必要になります。 要マニュアル参照
CentOSは、以下のパッケージが必要になります。
rpm -Uvh python-devel-2.4.3-19.el5.i386.rpm rpm -Uvh apr-devel-1.2.7-11.i386.rpm rpm -Uvh apr-util-devel-1.2.7-6.i386.rpm rpm -Uvh httpd-devel-2.2.3-6.el5.centos.1.i386.rpm
- インストール後の確認
# ls -l /usr/lib/httpd/modules/ # ldd /usr/lib/httpd/modules/mod_wsgi.so linux-gate.so.1 => (0x00b25000) libpthread.so.0 => /lib/libpthread.so.0 (0x00be7000) libdl.so.2 => /lib/libdl.so.2 (0x00de9000) libutil.so.1 => /lib/libutil.so.1 (0x00110000) libc.so.6 => /lib/libc.so.6 (0x00114000) /lib/ld-linux.so.2 (0x0067e000)
- mod_wsgiの動作確認
Apacheのconfigファイルの追加をします。
# vi /etc/httpd/conf.d/start.conf (追記する) LoadModule wsgi_module modules/mod_wsgi.so WSGIScriptAlias /test /var/www/cgi-bin/hello.py
- Hello Wolrdを表示します。
# vi /var/www/cgi-bin/hello.py (追記する) def application(environ, start_response): status = '200 OK' output = 'Hello World!' response_headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))] start_response(status, response_headers) return [output]
- 確認
- ブラウザから、http://localhost/test を開く
$ mkdir /var/www/cgi-bin/django $ cd /var/www/cgi-bin/django $ django-admin.py startproject test1
- httpd.confの追加
# vi /etc/httpd/conf.d/django-test.conf (追記) Alias /site_media/ "/your/django-dir/site_media/" LoadModule wsgi_module modules/mod_wsgi.so <Directory /your/django-dir/site_media/> Order deny,allow Allow from all </Directory> WSGIScriptAlias / /var/www/cgi-bin/django/mysite.wsgi <Directory /var/www/cgi-bin/django> Order deny,allow Allow from all </Directory>
- 動作用スクリプトの作成
import os, sys sys.path.append('/var/www/cgi-bin/django') os.environ['DJANGO_SETTINGS_MODULE'] = 'test1.settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()
- httpd(Apache)の再起動し、編集したconfファイルを読み込ませる。
- ブラウザから、http://localhost/ を開く