运行单个项目的步骤参考:这里

1 安装环境

操作系统:Ubuntu 12.04 LTS 32 位(安装在VMware虚拟机中)

python 版本:

  1. Python 2.7.3

Django版本

  1. >>> django.VERSION
  2. (1, 6, 2, 'final', 0)

mod_wsgi版本

  1. mod_wsgi3.x

apache版本及查看命令

  1. x@x:~/program$ /usr/sbin/apachectl -v (版本查看命令)
  2. /usr/sbin/apachectl: 87: ulimit: error setting limit (Operation not permitted)
  3. Server version: Apache/2.2.22 (Ubuntu)
  4. Server built: Mar 19 2014 21:10:40

2 配置

①修改port.conf

  1. x@x:/etc/apache2$ sudo vim ports.conf

添加以下代码 :

NameVirtualHost *:8080

Listen 8080

  1. NameVirtualHost *:80
  2. Listen 80
  3.  
  4. # add you code here for multiple Django code
    NameVirtualHost *:8080
  5. Listen 8080

② 新建两个Django项目

我新建的项目的目录是   x@x:~/program/django$   (这个目录可以自定) 

  1. django-admin.py startproject mywork
  2. django-admin.py startproject mywork1
  1. ├── mywork
  2.    ├── apache (后加的)
  3.       └── django.wsgi (后加的)
  4.    ├── manage.py
  5.    ├── mywork
  6.       ├── __init__.py
  7.       ├── settings.py
  8.       ├── urls.py
  9.       └── wsgi.py
  10.    └── static (后加的)
  11. ├── mywork1
  12.    ├── apache (后加的)
  13.       └── django.wsgi (后加的)
  14.    ├── manage.py
  15.    ├── mywork1
  16.       ├── __init__.py
  17.       ├── settings.py
  18.       ├── urls.py
  19.       └── wsgi.py
  20.    └── static (后加的)
  21. └── UserWeb.tgz

③ 修改httpd.conf 文件

  1. x@x:/etc/apache2$ sudo vim httpd.conf

添加如下代码

  1. # add code for multiple Django projects run in Apache
  2. #LoadModule wsgi_module modules/mod_wsgi.so
  3. #setting for Django projedt1 ****
  4. <VirtualHost *:80>
  5. ServerName 127.0.0.1
  6. DocumentRoot /home/x/program/django/mywork
  7. Alias /admin_media /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static
  8. <Directory "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static">
  9. AllowOverride None
  10. Options None
  11. Order allow,deny
  12. Allow from all
  13. </Directory>
  14.  
  15. WSGIScriptAlias / /home/x/program/django/mywork/apache/django.wsgi
  16. <Directory /home/x/program/django/mywork>
  17. Order deny,allow
  18. Allow from all
  19. </Directory>
  20. <Directory /home/x/program/django/mywork/apache>
  21. Allow from all
  22. </Directory>
  23.  
  24. <Location "/static/">
  25. #配置静态文件,网站中所有静态文件的路径为"/static/xxxx"
  26. SetHandler None
  27. </Location>
  28. </VirtualHost>
  29.  
  30. <VirtualHost *:8080>
  31. ServerName 127.0.0.1
  32. DocumentRoot /home/x/program/django/mywork1
  33. Alias /admin_media /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static
  34. <Directory "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static">
  35. AllowOverride None
  36. Options None
  37. Order allow,deny
  38. Allow from all
  39. </Directory>
  40.  
  41. WSGIScriptAlias / /home/x/program/django/mywork1/apache/django.wsgi
  42. <Directory /home/x/program/django/mywork1>
  43. Order deny,allow
  44. Allow from all
  45. </Directory>
  46. <Directory /home/x/program/django/mywork1/apache>
  47. Allow from all
  48. </Directory>
  49.  
  50. <Location "/static/">
  51. #配置静态文件,网站中所有静态文件的路径为"/static/xxxx"
  52. SetHandler None
  53. </Location>
  54. </VirtualHost>

④在Django项目中添加文件夹及文件

在项目文件根目录下添加

目录apache  和static

并在apache中新建文件django.wsgi

文件目录如下:

  1. ├── mywork
  2.    ├── apache
  3.       └── django.wsgi
  4.    ├── manage.py
  5.    ├── mywork
  6.       ├── __init__.py
  7.       ├── settings.py
  8.       ├── urls.py
  9.       └── wsgi.py
  10.    └── static
  11. ├── mywork1
  12.    ├── apache
  13.       └── django.wsgi
  14.    ├── manage.py
  15.    ├── mywork1
  16.       ├── __init__.py
  17.       ├── settings.py
  18.       ├── urls.py
  19.       └── wsgi.py
  20.    └── static

mywork/apache/  中的django.wsgi文件如下

  1. import os, sys
  2.  
  3. sys.path.append('/home/x/program/django/mywork')
  4.  
  5. os.environ['DJANGO_SETTINGS_MODULE'] = 'mywork.settings'
  6. os.environ['PYTHON_EGG_CACHE'] = '/tmp'
  7.  
  8. import django.core.handlers.wsgi
  9. application = django.core.handlers.wsgi.WSGIHandler()
  10. #print >> sys.stderr, sys.path

mywork1/apache/  中的django.wsgi文件如下

  1. import os, sys
  2.  
  3. sys.path.append('/home/x/program/django/mywork1')
  4.  
  5. os.environ['DJANGO_SETTINGS_MODULE'] = 'mywork1.settings'
  6. os.environ['PYTHON_EGG_CACHE'] = '/tmp'
  7.  
  8. import django.core.handlers.wsgi
  9. application = django.core.handlers.wsgi.WSGIHandler()
  10. #print >> sys.stderr, sys.path

⑤重启apache服务器,访问Django项目

  1. sudo service apache2 restart

通过ip地址访问即可

  1. 127.0.0.1:80
  2. 127.0.0.1:8080

如图所示

参考文章

1  ubuntu下部署django+apache2+mod_wsgi(配置多个站点)

2 Linux下安装apache,配置mod_wsgi,运行Django项目(挺详细的)

【Django】Apache上运行多个Django项目的更多相关文章

  1. 【Django】Apache上运行单个Django项目,mod_wsgi配置

    1 安装环境 操作系统:Ubuntu 12.04 LTS 32 位(安装在VMware虚拟机中) python 版本: Python 2.7.3 Django版本 >>> djang ...

  2. 在传统.NET Framework 上运行ASP.NET Core项目

    新的项目我们想用ASP.NET Core来开发,但是苦于我们历史的遗产很多,比如<使用 JavaScriptService 在.NET Core 里实现DES加密算法>,我们要估计等到.N ...

  3. Genymotion上运行ARM架构Android项目

    问题 Genymotion是x86的模拟器,在集成一些第三方的SDK时需要添加一些放在armeabi.armeabi-64文件夹下面的.so文件,这些文件在arm架构下才能运行.这时模拟器就不能用了. ...

  4. apache 上配置多个django工程

    我的环境是win7+python2.7.8+django1.6.4+apache2.2 废话不多说,直接进入正题: 下载对应的版本的mod_wsgi.so 第一步:添加mod_wsgi.so(记得对应 ...

  5. [Django] Window上通过IIS发布Django网站

    网上的教程坑实在多,以下是本人亲测通过的: 需要解决的问题: 1.使用 python manage.py runserver 来运行服务器,只适用测试环境中使用,正式发布的服务,需要一个可以稳定而持续 ...

  6. 在lnmp1.3布置的web服务器上运行thinkphp3.2.3项目pathinfo路径模式

    通过我的经历希望能给大家带来一些帮助: 我是在Linux系统上通过https://lnmp.org/install.html设置Nginx服务器,使用的是lnmp1.3版本,之后将一个thinkphp ...

  7. django搭建完毕运行显示hello django

    1.使用pycharm打开工程,进入工程配置解释器路径 2.视图和url 视图:处理我们从业务的地方,可以理解为函数 url:进行路由匹配的地方,先在主工程bookpro中进行匹配,如果匹配ok,那么 ...

  8. 本机运行.net 2.0项目报错,解决方案

    本机在iis上运行.net 2.0项目时,报以下错误“请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理”: 本机环境配置: 安装有以下几个.net 版本:v1.0.3705,v1.1.4322 ...

  9. 【DSP开发】【计算机视觉】EMCV:可在DSP上运行的OpenCV

    EMCV:可在DSP上运行的OpenCV EMCV项目主页: http://sf.net/projects/emcv EMCV全称为Embedded Computer Vision Library,是 ...

随机推荐

  1. Java中1000==1000为false而100==100为true

    public static void main(String[] args) { int z1 = 0; int z2 = 0; System.out.println(z1==z2);//TRUE I ...

  2. Map集合的遍历方式:

    迭代器来遍历 : entrySet() ; keySet(); values(); eg.HashMap<String,String> map = new HashMap<Strin ...

  3. VC++2005下的ADO SQL语句(like,count,distinct)和操作(转)

    http://blog.sina.com.cn/s/blog_56fd66a70100hxjf.html http://timke.blog.163.com/blog/#m=0 环境:MFC  Dia ...

  4. 2014款Macbook Air安装单独X64 Win7系统

    之所以写出来,是因为网上大多是用BootCamp安装双系统的,安装单独Win7的教程少之又少,然后大多数还写得不清不楚,所以折腾了一阵子.其实装好之后,还是觉得挺简单的. 我主要参考了两篇文章,链接如 ...

  5. 强大的内网劫持框架之MITMf

    Mitmf 是一款用来进行中间人攻击的工具.它可以结合 beef 一起来使用,并利用 beef 强大的 hook 脚本来控制目标客户端.下面让我们一起看看如何在 Kali2.0上安装使用 Mitmf ...

  6. unity3d学习重点记录

    本文主要是记录在学习unity3d中遇到的重点功能的实现,以及一些API的使用方法.以便在以后使用到的时候查找. 1,给一个UIButton添加执行的事件 // Use this for initia ...

  7. JavaScript内置对象

    对象概述 JavaScript是一种基于对象的脚本语句,而不是面向对象的编程语言.对象就是客观世界存在的实体,具有属性和方法两方面特性. 访问对象的属性和方法的方式如下: 对象名.属性 对象名.方法名 ...

  8. Flex 三态复选框

    在周末挤出了一点时间,写了一个三态复选框的组件,单独使用没有价值,不过集成到树之中可以很好的实现三态树,今天上午便把三态树组件也完成了,Flex自定义组件基本无所不能,此组件基于最新的Flex4.6( ...

  9. ceph--磁盘和rbd、rados性能测试工具和方法

    我在物理机上创建了5台虚拟机,搭建了一个ceph集群,结构如图: 具体的安装步骤参考文档:http://docs.ceph.org.cn/start/ http://www.centoscn.com/ ...

  10. 循环链表Josephus问题(c,cpp)

    问题描述: 设有n个人围坐在一个圆桌周围,现从第s个人开始报数,数到第m个的人出列,然后从出列的下一个人重新开始报数,数到第m个的人又出列,.......,如此反复直到所有的人出列为止. Joseph ...