kangkang's blog

标题: Django apache2 mod_python sqlite的配置
2009-09-17 22:05:55

正统的apache用来配Django做服务还是很靠谱,用来调试也方便。以ArchLinux为例。

首先,安装好apache2, mod_python和django。

1. 新建项目

$ mkdir -p /srv/http/django/db /srv/http/html/{media,templates} # 分别放置媒体文件和模板
$ chmod 777 /srv/http/django/db # 如果使用sqlite,除了文件的写权限,还需要目录的写权限
$ cd /srv/http/django
$ django-admin.py startproject kang

2. 编辑apache配置 加入或替换内容:

LoadModule python_module /usr/lib/httpd/modules/mod_python.so
MaxRequestsPerChild 1
Alias /admin-media "/usr/lib/python2.6/site-packages/django/contrib/admin/media"

<Directory "/usr/lib/python2.6/site-packages/django/contrib/admin/media">
       Order allow,deny
       Allow from all
</Directory>
<Location "/">
       SetHandler python-program
       PythonPath "['/srv/http/django/'] + sys.path"
       PythonHandler django.core.handlers.modpython
       SetEnv DJANGO_SETTINGS_MODULE kang.settings
       PythonAutoReload Off
       PythonDebug On
</Location>
<Location "/media">
       SetHandler None
</Location>
<Location "/admin-media">
       SetHandler None
</Location>
  1. 配置django
urls.py:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
(r'^admin/', include(admin.site.urls)),
)
settings.py:
DATABASE_ENGINE = 'sqlite3'
DATABASE_NAME = '/srv/http/django/db/data.fs'
ADMIN_MEDIA_PREFIX = '/admin-media/'
TEMPLATE_DIRS = (
   "/srv/http/html/templates",
)
INSTALLED_APPS = (
   'django.contrib.admin',
)
python manage.py syncdb

启动apache,完成。

发表于: Django