使用Ubuntu和Apache来运行Django服务器

首先

Django是一个用Python实现的Web应用程序框架,可以帮助设计和开发复杂的数据库驱动的Web应用程序。在引入时,

$ ./manager.py runserver

当进行正式运营测试时,想要与Apache进行对接。虽然还有许多其他介绍页面,但作为自己工作的备忘录,将其运营方法作为提醒留下来。

工作环境

工作环境如下所示。

    • ubuntu12.04

 

    • django 1.3.1

 

    python 2.7.3

除此之外,Apache的设置如下所示。

    DocumentRoot: /data/www
/etc/apache2/sites-available/default:   DocumentRoot /data/www
    • djangoプロジェクトのルートディレクトリ

~/webservices

apache2上のディレクトリ

/data/www/webservices -> ~/webservices

$ sudo ln -s ${HOME}/webservices /data/www/webservices

安装和设置必要的软件包。

$ sudo apt-get install -y apache2 libapache2-mod-wsgi
$ sudo apt-get install -y python-django
$ django-admin startproject webservices

制作django.wsgi

在Django的根目录下创建django.wsgi文件。

#!/usr/bin/env python
# coding: utf-8

import os
import sys

sys.path.append('/data/www')
sys.path.append('/data/www/webservices')

os.environ['DJANGO_SETTINGS_MODULE'] = 'webservices.settings'

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

Apache2的配置

创建/etc/apache2/sites-available/django。

WSGIScriptAlias /services /data/www/webservices/django.wsgi

<Directory /data/www/webservices/>
Order deny,allow
Allow from all
</Directory>

启用上述设置

$ sudo a2ensite django
$ sudo apache2ctl restart

如果使用sqlite3作为数据库,还需要设置对数据库的访问权限。假设sqlite3数据库文件名为data.db,在django的根目录下进行以下操作。

$ ./manager.py syncdb
…
$ chown ${USER}.www-data data.db
$ chmod g+w data.db

调试的种种

Python 的标准输出和错误消息输出在以下位置。

$ less /var/log/apache2/error.log
bannerAds