使用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