【Django】Apache上运行多个Django项目
运行单个项目的步骤参考:这里
1 安装环境
操作系统:Ubuntu 12.04 LTS 32 位(安装在VMware虚拟机中)
python 版本:
Python 2.7.3
Django版本
>>> django.VERSION
(1, 6, 2, 'final', 0)
mod_wsgi版本
mod_wsgi3.x
apache版本及查看命令
x@x:~/program$ /usr/sbin/apachectl -v (版本查看命令)
/usr/sbin/apachectl: 87: ulimit: error setting limit (Operation not permitted)
Server version: Apache/2.2.22 (Ubuntu)
Server built: Mar 19 2014 21:10:40
2 配置
①修改port.conf
x@x:/etc/apache2$ sudo vim ports.conf
添加以下代码 :
NameVirtualHost *:8080
Listen 8080
NameVirtualHost *:80
Listen 80 # add you code here for multiple Django code
NameVirtualHost *:8080
Listen 8080
② 新建两个Django项目
我新建的项目的目录是 x@x:~/program/django$ (这个目录可以自定)
django-admin.py startproject mywork
django-admin.py startproject mywork1
├── mywork
│ ├── apache (后加的)
│ │ └── django.wsgi (后加的)
│ ├── manage.py
│ ├── mywork
│ │ ├── __init__.py
│ │ ├── settings.py
│ │ ├── urls.py
│ │ └── wsgi.py
│ └── static (后加的)
├── mywork1
│ ├── apache (后加的)
│ │ └── django.wsgi (后加的)
│ ├── manage.py
│ ├── mywork1
│ │ ├── __init__.py
│ │ ├── settings.py
│ │ ├── urls.py
│ │ └── wsgi.py
│ └── static (后加的)
└── UserWeb.tgz
③ 修改httpd.conf 文件
啊
x@x:/etc/apache2$ sudo vim httpd.conf
添加如下代码
# add code for multiple Django projects run in Apache
#LoadModule wsgi_module modules/mod_wsgi.so
#setting for Django projedt1 ****
<VirtualHost *:80>
ServerName 127.0.0.1
DocumentRoot /home/x/program/django/mywork
Alias /admin_media /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static
<Directory "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory> WSGIScriptAlias / /home/x/program/django/mywork/apache/django.wsgi
<Directory /home/x/program/django/mywork>
Order deny,allow
Allow from all
</Directory>
<Directory /home/x/program/django/mywork/apache>
Allow from all
</Directory> <Location "/static/">
#配置静态文件,网站中所有静态文件的路径为"/static/xxxx"
SetHandler None
</Location>
</VirtualHost> <VirtualHost *:8080>
ServerName 127.0.0.1
DocumentRoot /home/x/program/django/mywork1
Alias /admin_media /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static
<Directory "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory> WSGIScriptAlias / /home/x/program/django/mywork1/apache/django.wsgi
<Directory /home/x/program/django/mywork1>
Order deny,allow
Allow from all
</Directory>
<Directory /home/x/program/django/mywork1/apache>
Allow from all
</Directory> <Location "/static/">
#配置静态文件,网站中所有静态文件的路径为"/static/xxxx"
SetHandler None
</Location>
</VirtualHost>
④在Django项目中添加文件夹及文件
在项目文件根目录下添加
目录apache 和static
并在apache中新建文件django.wsgi
文件目录如下:
├── mywork
│ ├── apache
│ │ └── django.wsgi
│ ├── manage.py
│ ├── mywork
│ │ ├── __init__.py
│ │ ├── settings.py
│ │ ├── urls.py
│ │ └── wsgi.py
│ └── static
├── mywork1
│ ├── apache
│ │ └── django.wsgi
│ ├── manage.py
│ ├── mywork1
│ │ ├── __init__.py
│ │ ├── settings.py
│ │ ├── urls.py
│ │ └── wsgi.py
│ └── static
mywork/apache/ 中的django.wsgi文件如下
import os, sys
sys.path.append('/home/x/program/django/mywork')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mywork.settings'
os.environ['PYTHON_EGG_CACHE'] = '/tmp'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
#print >> sys.stderr, sys.path
mywork1/apache/ 中的django.wsgi文件如下
import os, sys
sys.path.append('/home/x/program/django/mywork1')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mywork1.settings'
os.environ['PYTHON_EGG_CACHE'] = '/tmp'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
#print >> sys.stderr, sys.path
⑤重启apache服务器,访问Django项目
sudo service apache2 restart
通过ip地址访问即可
127.0.0.1:80
127.0.0.1:8080
如图所示

参考文章
1 ubuntu下部署django+apache2+mod_wsgi(配置多个站点)
2 Linux下安装apache,配置mod_wsgi,运行Django项目(挺详细的)
【Django】Apache上运行多个Django项目的更多相关文章
- 【Django】Apache上运行单个Django项目,mod_wsgi配置
1 安装环境 操作系统:Ubuntu 12.04 LTS 32 位(安装在VMware虚拟机中) python 版本: Python 2.7.3 Django版本 >>> djang ...
- 在传统.NET Framework 上运行ASP.NET Core项目
新的项目我们想用ASP.NET Core来开发,但是苦于我们历史的遗产很多,比如<使用 JavaScriptService 在.NET Core 里实现DES加密算法>,我们要估计等到.N ...
- Genymotion上运行ARM架构Android项目
问题 Genymotion是x86的模拟器,在集成一些第三方的SDK时需要添加一些放在armeabi.armeabi-64文件夹下面的.so文件,这些文件在arm架构下才能运行.这时模拟器就不能用了. ...
- apache 上配置多个django工程
我的环境是win7+python2.7.8+django1.6.4+apache2.2 废话不多说,直接进入正题: 下载对应的版本的mod_wsgi.so 第一步:添加mod_wsgi.so(记得对应 ...
- [Django] Window上通过IIS发布Django网站
网上的教程坑实在多,以下是本人亲测通过的: 需要解决的问题: 1.使用 python manage.py runserver 来运行服务器,只适用测试环境中使用,正式发布的服务,需要一个可以稳定而持续 ...
- 在lnmp1.3布置的web服务器上运行thinkphp3.2.3项目pathinfo路径模式
通过我的经历希望能给大家带来一些帮助: 我是在Linux系统上通过https://lnmp.org/install.html设置Nginx服务器,使用的是lnmp1.3版本,之后将一个thinkphp ...
- django搭建完毕运行显示hello django
1.使用pycharm打开工程,进入工程配置解释器路径 2.视图和url 视图:处理我们从业务的地方,可以理解为函数 url:进行路由匹配的地方,先在主工程bookpro中进行匹配,如果匹配ok,那么 ...
- 本机运行.net 2.0项目报错,解决方案
本机在iis上运行.net 2.0项目时,报以下错误“请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理”: 本机环境配置: 安装有以下几个.net 版本:v1.0.3705,v1.1.4322 ...
- 【DSP开发】【计算机视觉】EMCV:可在DSP上运行的OpenCV
EMCV:可在DSP上运行的OpenCV EMCV项目主页: http://sf.net/projects/emcv EMCV全称为Embedded Computer Vision Library,是 ...
随机推荐
- LoadRunner功能的Jmeter实现
- Orchard官方文档翻译(九) 新增并管理媒体资源
原文地址:http://docs.orchardproject.net/Documentation/Adding-and-managing-media-content 想要查看文档目录请用力点击这里 ...
- Maven中央存储库
当你建立一个 Maven 的项目,Maven 会检查你的 pom.xml 文件,以确定哪些依赖下载.首先,Maven 将从本地资源库获得 Maven 的本地资源库依赖资源,如果没有找到,然后把它会从默 ...
- linux内核学习(一步一步走)——内核概述
一.用户空间与内核空间: 用户通过用户空间与操作系统打交道,程序员开发或使用的应用程序位于用户空间.用户空间不能直接访问内核,从而不能访问硬件资源,但是可以通过内核定义的最外层例程——系统调用来访问. ...
- Genymotion中文手册(官方用户手册翻译)
目录 1.概述 2 2.特点 2 2.1最擅长于虚拟Android 2 2.2高可控性 2 2.3管理你的设备 2 2.4从Eclipse中开启虚拟设备 3 3.要 ...
- 学习练习 java20160507作业
第一题 求水仙花的个数: //求水仙花数 int zongshu = 0; for(int i =100; i<=999;i++) { int bai = i/100; //求百位上面的数字 i ...
- 终于解决了PHP调用SOAP过程中的种种问题。(转)
最近在做公司和第三方的一个合作项目,需要调用统一验证接口和统一支付接口.由于牵涉公司机密,所以我要单独写一层PHP的接口给第三方用.前面那个验证接口主要卡在了des加密的方式上,这个有时间再说.这篇主 ...
- Hyper-V下安装Ossim系统
WindowsServer2008Hyper-V下安装Ossim系统 背景:很多朋友在用Hyper-v安装Linux的时候总是抱怨速度很慢,而且装好了系统无法识别网卡,可实际上针对网卡的问题本文提出了 ...
- 百度编辑器Ueditor自动换行,添加<p>的问题
百度编辑器Ueditor其实蛮好用的,后来使用了一段时间发现,每次打开后又保存,发现都会往内容的前后都增加一个空白的<p></p>.刚开始以后是百度编辑器的问题,找了很长时间也 ...
- oracle 游标示例
declare iCount int:=0; sPath nvarchar2(200); tdzsh nvarchar2(50);begin for x in (select c.imgpath fr ...