ubuntu10.10+django+apache2+(mod-python 或 wsgi)
这几天一直在折腾django在apache上的部署,网上的资料鱼龙混杂,特将经验记录下来,希望能帮助更多的人。
mod-python:
1.安装apache,mod-python:
sudo apt-get install apache2 libapache2-mod-python
2.在/etc/apache2/available/目录下建立配置文件:mytest
<VirtualHost *:80>
ServerName localhost
DocumentRoot /home/sarlmolapple/workspace/django-site/mytest
<Directory "/home/sarlmolapple/workspace/django-site">
Allow from all
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mytest.settings
PythonDebug On
PythonPath "['/home/sarlmolapple/workspace/django-site', '/home/sarlmolapple/workspace/django-site/mytest', '/home/sarlmolapple/workspace/django-site/mytest/mysite'] + sys.path"
</Directory>
</VirtualHost>
注:django项目为mytest, 路径为:/home/sarlmolapple/workspace/django-site/mytest,
‘/home/sarlmolapple/workspace/django-site/mytest/mysite’为mytest中的app所在路径
3.运行命令:
sudo a2ensite mytest sudo /etc/init.d/apache2 reload
然后你在浏览器中输入http://localhost就可以看到你想要看到的页面了
WSGI:
1.安装apache,mod-python:
sudo apt-get install apache2 libapache2-wsgi-python
2.在/etc/apache2/available/目录下建立配置文件:mytest
<VirtualHost *:80>
ServerName wsgi.mytest
DocumentRoot /home/sarlmolapple/workspace/django-site/mytest
<Directory /home/sarlmolapple/workspace/django-site/mytest>
Order allow,deny
Allow from all
PythonPath "['/home/sarlmolapple/workspace/django-site', '/home/sarlmolapple/workspace/django-site/mytest', '/home/sarlmolapple/workspace/django-site/mytest/mysite'] + sys.path"
</Directory>
WSGIDaemonProcess wsgi.mytest processes=2 threads=15 display-name=%{GROUP}
WSGIProcessGroup wsgi.mytest
WSGIScriptAlias / /home/sarlmolapple/workspace/django-site/mytest/apache/django.wsgi
</VirtualHost>
3.在mytest目录下建立apache/django.wsgi
import os
import sys
sys.path.append('/home/sarlmolapple/workspace/django-site')
sys.path.append('/home/sarlmolapple/workspace/django-site/mytest')
sys.path.append('/home/sarlmolapple/workspace/django-site/mytest/mysite')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mytest.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
注: mytest路径为:/home/sarlmolapple/workspace/django-site/mytest,‘/home/sarlmolapple/workspace/django-site/mytest/mysite’为mytest中的app所在路径
4.运行命令:
sudo a2ensite mytest sudo /etc/init.d/apache2 reload
同理,你在浏览器中输入http://localhost就可以看到你想要看到的页面了。