Django部署到Apache Web Server
Windows环境下,将Django部署到Apache Web Server
在Windows上部署Django(用mod_wsgi)会出现各种奇怪的问题,现简单记录下配置过程及遇到的错误及解决方法。
环境搭建
windows 7
python 2.7.3 (注意最好是32位的,因为Apache目前对64位支持非常不友善,尝试了好多次,64位的太高大上,众多不兼容)
Apache2.2.10 (直接下载apache_2.2.10-win32-x86-no_ssl.msi就行)
Django-1.6.1 (官网下载)
配置思路
1、配置apache的httpd.conf文件
2、配置django相关配置文件
配置过程
其实配置生效针对不同的环境有不同的细节需要处理,网上的方案(包括本篇)都不是一定通用的,只是在某种环境下有效,但总体思路就是配置上述提及的两个配置文件。
部署django项目常用的两个方式是使用mod_python和mod_wsgi两种部署方式,这里我使用的是mod_wsgi。
1、先去网上下载个名叫这个的东西:mod_wsgi-3.4.ap22.win32-py2.7,里面有个文件是mod_wsgi.so,然后把这个copy到apache安装目录的modules文件下(默认安装目录是:C:\Program Files (x86)\Apache Software Foundation\Apache2.2\modules)
下面两个配置中涉及路径的很容易搞错,如果是绝对路径的话要检查自己是否正确。
2、在Django项目根目录下新建两个文件:
django.wsgi:
|
1
2
3
4
5
6
7
8
9
10
11
|
<span style="font-size: 14px;">#coding=utf-8import osimport sysimport django.core.handlers.wsgios.environ['DJANGO_SETTINGS_MODULE'] = 'appops.settings'app_apth = "D:/OPSAPP/appops"sys.path.append(app_apth)application = django.core.handlers.wsgi.WSGIHandler()</span> |
apache_django_wsgi.conf:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
<span style="font-size: 14px;">#Alias / D:/OPSAPP/appopsAlias /favicon.jpg D:/OPSAPP/appops/static/images/favicon.jpg#WSGIScriptAlias /api "D:/OPSAPP/appops/appapi/handler.py" #注意,这里在httpd.conf中写过的话这里就不用写了。WSGIScriptAlias / "D:/OPSAPP/django.wsgi"WSGIPassAuthorization On<Directory "D:/OPSAPP/appops/appops">Order Deny,AllowAllow from all</Directory>Alias /static/ D:/OPSAPP/appops/static/<Directory D:/OPSAPP/appops/static/ >Order deny,allowAllow from allIndexOptions FancyIndexing</Directory><Directory D:/OPSAPP/appops/ >Order deny,allowAllow from allIndexOptions FancyIndexing</Directory><Directory "D:/OPSAPP"> Allow from all</Directory></span> |
目录结构如下:

3、编辑apache的配置文件httpd.conf(C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\httpd.conf)
中间加上一句:
LoadModule wsgi_module modules/mod_wsgi.so
文件结尾新增下列配置:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
<span style="font-size: 14px;">Alias /static D:/OPSAPP/appops/static #这是为了可以通过url来访问static文件<Location "/static/"> SetHandler None</Location></span><br><span style="font-size: 14px;"><VirtualHost *:80> #配置虚拟目录ServerName app.ops.test.com#ServerName 192.168.18.74DocumentRoot D:/OPSAPPWSGIScriptAlias / D:/OPSAPP/django.wsgi<Directory />Order deny,allowAllow from all</Directory><Directory /apache>Allow from all</Directory></VirtualHost><Directory "D:/OPSAPP/appops/static/"> #这个一定需要,不然网页样式错误,css没有起作用Order Deny,AllowAllow from all</Directory></span> |
重启下apache服务基本就OK了。
常见错误
访问失败时的错误会记录在apache日志里(C:\Program Files (x86)\Apache Software Foundation\Apache2.2\logs),
1、静态资源不能访问,如css样式错乱等,需要在httpd.conf文件里增加配置:
|
1
2
3
4
5
6
|
<span style="font-size: 14px;"><Directory D:/OPSAPP/appops/static/ >Order deny,allowAllow from allIndexOptions FancyIndexing</Directory></span> |
2、出现找不到模块的错,如no module named XXX等,主要有两个原因:
1)、路径错了
2)、文件命名跟Django或python内部模块冲突了
参考:
http://www.cnblogs.com/zhengyun_ustc/archive/2006/11/20/django_apache_win32.html
http://www.server110.com/apache/201309/1873.html
Django部署到Apache Web Server的更多相关文章
- Windows环境下,将Django部署到Apache Web Server
在Windows上部署Django(用mod_wsgi)会出现各种奇怪的问题,现简单记录下配置过程及遇到的错误及解决方法. 环境搭建 ...
- Using Apache Web Server with Jboss AS 7
In real-world projects, it's common to find Apache web server as a front door to your application se ...
- 解决Apache Web Server的几个错误
一.安装好Apache后服务里没有Apache服务 在命令行进入安装apache的bin目录下,输入命令 httpd.exe -k install -n Apache2.4 二.Apache web ...
- yum安装Apache Web Server后各个文件存放位置
yum安装Apache Web Server后各个文件存放位置 用yum安装apache软件: yum -y install httpd 安装完成后,来查看理解yum安装软件的过程和安装路径. ...
- django部署到apache上(非常重要的,3者版本要一致,是32位就都要是32位的)
网上把django部署到apache的文章挺多的,但是按照大家的操作,并没有一次就成功,还是遇到了一些问题,这里主要有以下几个情况. 1.网上找到的mod_wsgi的版本问题,导致动态库加载不上. 2 ...
- django 部署到 apache
安装完django之后,每次都需要通过命令来启动启动开发服务器.虽然调试和测试方便,但只能在本地运行,并且不能承受许多用户同时使用的负载.所以需要将Django部署到生产级的服务器,这里选择apach ...
- kill 挂起 Apache Web Server
[root@hadoop1 ~]# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8 ...
- 如何将Django部署到Apache服务器上
操作环境: Ubuntu 16.04 Apache 2.4 Django 1.9 Python 2.7 mod_wsgi 前言:本教程纯自己查阅资料后整理,望对大家有帮助! 1. 安装 mod_ws ...
- 禁掉Apache web server签名 How to turn off server signature on Apache web server
有的时候,我们为了从安全角度考虑,防止黑客恶意攻击.我们会隐藏掉server信息,比方,一般我们会发现例如以下信息. 我用的是centos (fedora, RHEL也一样) $ sudo vi /e ...
随机推荐
- 设计模式 - 迭代模式(iterator pattern) Java 迭代器(Iterator) 详细解释
迭代模式(iterator pattern) Java 迭代器(Iterator) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy 參考迭代器模式(ite ...
- android_线
说明:android螺纹. android无非就是一个线程Main Thread和Worker Thread.(除了主线程Main Thread是Worker Thread) Main Thread ...
- TCP在三次握手协议和四波(图)
设定TCP需要建立一个三次握手的能力,断开需要握手.整步骤,如看到下面的附图: 先来看看怎样建立连接的. 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资 ...
- malloc,free简单的实现
有关标准库首先简要malloc其原理: 标准库内部通过一个双向链表.管理在堆中动态分配的内存. malloc函数分配内存时会附加若干(一般是12个)字节,存放控制信息. 该信息 ...
- Layout Renderers
Layout Renderers NLog package ${activityid} - Puts into log a System.Diagnostics trace correlation i ...
- 【SSH三个框架】Hibernate第七基金会:不少下属业务
相对于上述一关系,在这里,下一个一对多关系说明. 另外,在上述.我们描述了许多人描述的一一对应关系.在关系数据库是多对一的关系,但也有许多关系.但,只知道它是不够的,Hibernate它是一种面向对象 ...
- oracle_分区表的新增、修改、删除、合并。普通表转分区表方法
一. 分区表理论知识Oracle提供了分区技术以支持VLDB(Very Large DataBase).分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中.分区完全对应用透明. Oracl ...
- HDU 4006 The kth great number AVL解
提供动态更新数据.第实时QK大量的值什么? 使用AVL统计数据结构做,比较先进的数据结构的内容. 不知道给出的数据为准值是否有反复.下面的程序是因为我能够处理重复数据出现的情况下,. 了repeat的 ...
- 电商指尖---(9).net发展Solr中间Facet特征
上一节中我们演示了在SolrAdmin中使用Facet功能来进行分组统计.这一节我们看看如何使用.NET开发Solr中的Facet功能.在讲Facet功能的同一时候, 我们看下.Net中如何使用Sol ...
- ASP.NET MVC 插件化
ASP.NET MVC 插件化机制 2015-03-14 22:25 by 杨康新, 1328 阅读, 15 评论, 收藏, 编辑 概述 nopCommerce的插件机制的核心是使用BuildMana ...