Ubuntu apache2下建立django开发环境

    Google了很多关于ubuntu中apache2下建立django开发环境的页面,很多写的乱七八糟,很多经过尝试完全失败,更多的是一帮无良的抓站网站,抓过来的代码乱得一塌糊涂,所以有必要自己总结记录一下,所有步骤在安装了apache2的ubuntu 10.04 64bit server中完成。

0. 概述

    要在ubuntu下使用apache2承载django站点,共有4个要素:apache, python, django和mod_python,ubuntu server默认安装python,而在安装过程中如果已勾选了apache2则又具备了第二个要素,剩下的,就是如何安装django和mod_python了。

    django项目主页面:https://www.djangoproject.com/

    mod_python项目主页面:http://www.modpython.org/

1. 安装djando

django的安装可以通过两种方式,一种使用apt,一种通过下载源码手动安装,两个的过程分别如下

sudo apt-get install python-django
cd ~/downloads
wget http://www.djangoproject.com/download/1.3.1/tarball/
tar xzvf Django-1.3.1.tar.gz
cd Django-1.3.1
python setup.py install

此时,django已可通过自带服务器运行,不信试试

cd ~/django/projects
django-admin startproject windvoice
cd windvoice
python manage.py runserver

2. 安装mod_python

同样两种方法,apt:

sudo apt-get install libapache2-mod-python

以及手动安装:

cd ~/downloads
wget http://archive.apache.org/dist/httpd/modpython/mod_python-3.3.1.tgz
tar xzvf mod_python-3.3.1.tgz
cd mod_python-3.3.1
./configure --with-apxs=/usr/local/apache/bin/apxs --with-python=/usr/local/python251/bin/python --with-max-locks=32 --with-python-src=/soft/Python-2.5.1/ --with-flex=/usr/bin/flex
make
make install

在这个过程中如果出现错误提示,则需要链接一下apache libtool

mv /usr/local/apache/build/libtool /usr/local/apache/build/libtool.old
ln -s /usr/bin/libtool /usr/local/apache/build/libtool

可参考“老韩”的文章《mod_python安装及问题解决》 http://www.handaoliang.com/article_33.html

3. apache配置文件

注意Directory节点下的SetHandler部分

<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName django.server.com
DocumentRoot /home/works/django/projects/windvoice
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/works/django/projects/windvoice/>
SetHandler python-program
PythonHandler django.core.handlers.modpython
PythonPath "['/home/works/django/projects'] + sys.path"
SetEnv PYTHON_EGG_CACHE /tmp
SetEnv DJANGO_SETTINGS_MODULE windvoice.settings
PythonDebug Off

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

ErrorLog /var/log/apache2/error-django.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access-django.log combined
</VirtualHost>


4. 其余工作

现在,enable你的django site并重启apache2

sudo a2ensite django
sudo service apache2 restart

此时在客户端机器上配置好你的HOST,输入配置文件中的域名试试吧!






原文地址:https://www.cnblogs.com/windvoice/p/2239470.html