欢迎来到山村网

Windows 7中将Django部署到Apache Web Server

2019-03-07 12:33:18浏览:580 来源:山村网   
核心摘要:本质上来说, Django 只不过是用 Python 编写的一组类库。用 Django 开发站点就是使用这些类库编写 Python 代码。因此,学习 Dja

本质上来说, Django 只不过是用 Python 编写的一组类库。用 Django 开发站点就是使用这些类库编写 Python 代码。因此,学习 Django 的关键就是学习如何进行 Python 编程并理解 Django 类库的运作方式。

如果你有Python开发经验,在学习过程中应该不会有任何问题,基本上,Django的代码并 没有使用一些黑色魔法(例如代码中的欺骗行为,某个实现解释或者理解起来十分困难)。 对你来说,学习Django就是学习她的命名规则和API。

配置思路

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 FoundationApache2.2modules)

下面两个配置中涉及路径的很容易搞错,如果是绝对路径的话要检查自己是否正确。

2、在Django项目更目录下新建两个文件:

django.wsgi:

#coding=utf-8

import os

import sys

import django.core.handlers.wsgi

os.environ['DJANGO_SETTINGS_MODULE'] = 'appops.settings'

app_apth = "D:/OPSAPP/appops"

sys.path.append(app_apth)

application = django.core.handlers.wsgi.WSGIHandler()

apache_django_wsgi.conf:

#Alias / D:/OPSAPP/appops

Alias /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,Allow

Allow from all

</Directory>

Alias /static/ D:/OPSAPP/appops/static/

<Directory D:/OPSAPP/appops/static/ >

Order deny,allow

Allow from all

IndexOptions FancyIndexing

</Directory>

<Directory D:/OPSAPP/appops/ >

Order deny,allow

Allow from all

IndexOptions FancyIndexing

</Directory>

<Directory "D:/OPSAPP">

Allow from all

</Directory>

目录结构如下:

3、编辑apache的配置文件httpd.conf(C:Program Files (x86)Apache Software FoundationApache2.2confhttpd.conf)

中间加上一句:

LoadModule wsgi_module modules/mod_wsgi.so

文件结尾新增下列配置:

Alias /static D:/OPSAPP/appops/static #这是为了可以通过url来访问static文件

<Location "/static/">

SetHandler None

</Location><br>

<VirtualHost *:80> #配置虚拟目录

ServerName app.ops.test.com

#ServerName 192.168.18.74

documentRoot D:/OPSAPP

WSGIscriptAlias / D:/OPSAPP/django.wsgi

<Directory />

Order deny,allow

Allow from all

</Directory>

<Directory /apache>

Allow from all

</Directory>

</VirtualHost>

<Directory "D:/OPSAPP/appops/static/"> #这个一定需要,不然网页样式错误,css没有起作用

Order Deny,Allow

Allow from all

</Directory>

重启下apache服务基本就OK了。

常见错误

访问失败时的错误会记录在apache日志里(C:Program Files (x86)Apache Software FoundationApache2.2logs),

1、静态资源不能访问,如css样式错乱等,需要在httpd.conf文件里增加配置:

<Directory D:/OPSAPP/appops/static/ >

Order deny,allow

Allow from all

IndexOptions FancyIndexing

</Directory>

2、出现找不到模块的错,如no module named XXX等,主要有两个原因:

1)、路径错了

2)、文件命名跟Django或python内部模块冲突了

(责任编辑:豆豆)
下一篇:

利用组策略来关闭win7驱动的自动更新

上一篇:

WPS演示中自定义动画功能制作神奇万花筒的方法

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com