`
fudehai001
  • 浏览: 497212 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Windows下Django配置Apache示范设置

阅读更多


本文讨论了在
Windows环境下,将Django配置到Apache Web Server时所遇到的问题,以及最终解决的示范步骤。

 

您可以遵循后文描述的配置步骤,在此之前,我们先描述两个常见的错误现象。

[常见错误现象1]

关键词      client denied by server configuration

表象          访问了http://localhost:80/mysite/ 后,假如发现图片没有加载,或者css没有应用上,并且httpd.conf文件中Location的配置绝对路径肯定没错。

 

解释         

第一,   首先检查httpd.conf配置Alias的配置,

看看Alias设置的路径是否正确,

Alias /site_media c:/django/myproject/media

请保证您附加的这个路径肯定是你的图片或者css存放的路径。

其次,请检查您的django项目myproject目录下的settings.py,保证MEDIA_ROOTSTATIC_PATHTEMPLATE_DIRS这三个参数指向的绝对路径正确无误。

最后,如果上面的参数都没错,却还是不行。那么请您检查Apache的日志文件

Apache2.2\logs\error.log

如果您发现有这样的错误提示:

错误日志

[Mon Nov 20 17:27:08 2006] [notice] Child 4172: Starting thread to listen on port 80.

[Mon Nov 20 17:27:08 2006] [error] [client 127.0.0.1] client denied by server configuration: c:/Django/myproject/media/css/global.css, referer: http://localhost:80/mysite/

那么说明是因为对这些资源文件的访问被拒绝了。

此时,请您浏览 http://localhost:80/site_media/css/global.css ,如果遇到了HTTP 403错误,就说明是权限问题。

此时,请到httpd.conf,增加如下配置来允许静态资源文件夹被访问:

增加的配置行

对需要访问的区域,可以增加正确的Directory

否则会得到这样的错误:client denied by server configuration: c:/Django/myproject/media/css/global.css, referer: http://localhost:80/mysite/

<Directory “c:/Django/myproject/media/”>

Order Deny,Allow

Allow from all

</Directory>

重启Apache服务。

 

[常见错误现象2]

关键词      EnvironmentError: Could not import settings

表象          访问了http://localhost:80/mysite/ 后,直接页面报告如下错误:

页面错误输出

1.     Mod_python error: PythonHandler django.core.handlers.modpython

Traceback (most recent call last):

File C:\Python24\Lib\site-packages\mod_python\apache.py, line 299, in HandlerDispatch
result = object(req)

File c:\django_src\django\core\handlers\modpython.py, line 163, in handler
return ModPythonHandler()(req)

File c:\django_src\django\core\handlers\modpython.py, line 125, in __call__
if settings.ENABLE_PSYCO:

File c:\django_src\django\conf\__init__.py, line 27, in __getattr__
self._import_settings()

File c:\django_src\django\conf\__init__.py, line 54, in _import_settings
self._target = Settings(settings_module)

File c:\django_src\django\conf\__init__.py, line 82, in __init__
raise EnvironmentError,
Could not import settings %s (Is it on sys.path? Does it have syntax errors?): %s % (self.SETTINGS_MODULE, e)

EnvironmentError: Could not import settings myproject.settings (Is it on sys.path? Does it have syntax errors?): No module named myproject.settings

 

这是开始配置django+apache最容易遇到的问题,:D

 

解释

这是因为apache在系统目录下找不到myproject/settings.py文件。

首先检查PythonPath设置的路径是否正确:

PythonPath “sys.path+['c:/django']“

注意,这个‘c:/django‘路径实际是我们的项目路径c:/django/myproject的上一级目录!不要写错了。

增加的配置行

#  mysite目录路径: c:/django/myproject

但是对于PythonPath,必须设置成这个目录的上一级目录!

# this site url:http://localhost:80/mysite/

<Location “/mysite/”>

    SetHandler python-program

    PythonPath “sys.path+['c:/django']“

    PythonHandler django.core.handlers.modpython   

    SetEnv DJANGO_SETTINGS_MODULE myproject.settings

    PythonInterpreter mysite

    PythonDebug On

</Location>

 

配置DjangoApache的步骤:

如何在Windows环境下安装Apachemod_Python 这篇Blog解释得很明白,我下面的这些步骤得到了验证。

1

http://httpd.apache.org/

来获取apache_2.2.3-win32-x86-no_ssl.msi这个安装文件;

运行这个msi即可顺利安装Apache

2

网络上有很多说可以利用Apachemod_python源代码来编译安装mod_python的,但是如果你仅仅想快速安装,那么请从

http://www.apache.org/dist/httpd/modpython/win/3.2.10/

直接下载

mod_python-3.2.10.win32-py2.4-apache2.2.exe

文件,运行这个exe即可顺利把mod_python安装到Python2.4以及Apache2.2

由于GFW的封锁,可能您无法访问apache网站,那么可以从这里下载:

http://www.cnblogs.com/Files/zhengyun_ustc/mod_python-3.2.10.win32-py2.4-apache2.2.rar

3

我们用

Python django-admin.py startproject myproject

命令,在C盘的django目录下创建了一个Django项目myproject。我们把它引用的图片文件和css文件等静态资源都放在myproject文件夹下的media目录中。

此时,将myproject目录下的settings.py文件中的这三个参数修改一下,主要是为了从相对路径变成绝对路径:

修改的配置行

# Django settings for myproject project.

”’

将相对路径改为绝对路径。主要有:

MEDIA_ROOT

TEMPLATE_DIRS

STATIC_PATH

”’

# Absolute path to the directory that holds media.

# Example: “/home/media/media.lawrence.com/”

MEDIA_ROOT = ‘c:/django/myproject’

STATIC_PATH = ‘c:/django/myproject/media’

TEMPLATE_DIRS = (

    # Put strings here, like “/home/html/django_templates”.

    # Always use forward slashes, even on Windows.

    ‘c:/django/myproject/templates’,

)

切记切记,一定要保证这三个参数是绝对路径。

4

配置Apachehttpd.conf配置文件:

首先,在“Dynamic Shared Object (DSO) Support”的配置下增加一行

LoadModule python_module modules/mod_python.so

这个必须手动添加。

5

我们列出此时Apache所需要的参数分别为:

项目名:myporject

试图访问的URL为:http://localhost:80/mysite/

静态资源文件的存放目录:c:/django/myproject/media

项目文件夹路径:c:/django/myproject

好了,此时你就应该在httpd.conf文件的最后附加这段配置,以便让Apache知道到哪里去定位myproject/settings.py文件:

增加的配置行

#  mysite目录路径: c:/django/myproject

但是对于PythonPath,必须设置成这个目录的上一级目录!

# this site url:http://localhost:80/mysite/

<Location “/mysite/”>

    SetHandler python-program

    PythonPath “sys.path+['c:/django']“

    PythonHandler django.core.handlers.modpython   

    SetEnv DJANGO_SETTINGS_MODULE myproject.settings

    PythonInterpreter mysite

    PythonDebug On

</Location>

对于上面的配置,Limodou注释道:“上面 PythonPath 主要是将 myproject的目录加入到 sys.path ,以便 Django 可以找到。需要使用绝对路径。

SetEvn 中设置的 DJANGO_SETTINGS_MODULE 就对应于你的 项目名.配置文件。因此为了能导入 项目名.配置文件,就需要前面的 PythonPath 的设置。

PythonDebug  PythonAutoReload 建议在生产时设为 Off 。”

为了让图片、cssscript能够被Apache成功加载,还需要在httpd.conf最后附加这段配置:

增加的配置行

#Alias /site_media 是用来将 myproject的静态文件设置一个 URL 访问的别名。

Alias /site_media c:/django/myproject/media

<Location “/site_media/”>

       SetHandler None

</Location>

 

#Alias /media 是将 Django Admin 的静态文件设置一个 URL 的访问别名。

Alias /media c:/Django-0.95/django/contrib/admin/media

<Location “/media/”>

       SetHandler None

</Location>

 

# file types we want to serve statically

# case insensative match

<LocationMatch “(?i)\.(jpg|gif|png|txt|ico|pdf|css|jpeg)$”>

       SetHandler None

</LocationMatch>

 

LimodouStep by step特地说“同时可以注意到 settings 我改为了 settings_apache 了。一方面将要把其中的内容有关相对路径的东西改为绝对路径,另一方面我还想保持现在的 settings.py 。”这也是一个很好的做法。

最后,修改MaxRequestsPerChild1,这是一个可选项。Limodou是这么说的“同时如果你不想每次重启Apache 来进行测试,可以将: MaxRequestsPerChild 0. 改为: MaxRequestsPerChild 1

 

重启Apache服务。

6

浏览 http://localhost:80/mysite/ 即可。

 

分享到:
评论

相关推荐

    django+apache+mod_wsgi完美匹配包

    3. 安装Django,将`site-packages`目录中的`django`文件夹移动到Apache的Python路径下。 4. 创建一个Django项目,并将其设置为Apache的虚拟主机。 5. 使用mod_wsgi配置Apache,指定Django项目的`wsgi.py`文件作为...

    ubuntu下django+apache+mod_wsgi部署

    ubuntu下django+apache+mod_wsgi部署。我的测试成功了!

    window7配置python3.3 + django + apache24 + mod_wsgi

    在Windows 7操作系统中搭建一个基于Python 3.3、Django、Apache 2.4和mod_wsgi的Web开发环境是一项技术性较强的任务。这个配置组合能够让你使用Python的高级Web框架Django来开发应用,并通过Apache服务器进行高效...

    Apache中部署Django

    这段配置设置了Django应用的基本访问路径,并指定了Django项目的设置模块。同时,还启用了调试模式。 为了优化性能并简化媒体文件的处理,还需要配置静态文件的直接映射: ```apache Alias /images "E:/python...

    Apache运行python的django程序配置文件

    Apache运行python的django程序配置文件

    Windows+Apache+mod_wsgi+virtualenv搭建django

    - 创建 Apache 的自定义配置文件 `apache_django_wsgi.conf`,设置静态资源和 Django 应用的别名。 - 创建 `django.wsgi` 文件,用于处理来自 Apache 的请求并将它们传递给 Django 应用。 - 如果使用 virtualenv...

    windows-服务器-Django-Apache2.4-mod-wsgi.7z

    在Windows环境中部署Django web应用通常涉及到多个组件的协同工作,包括Django框架本身、Web服务器(如Apache)以及让Django与Web服务器交互的中间件(如mod_wsgi)。以下是对这些关键知识点的详细解释: 1. **...

    apache+wsgi配置Django项目

    apache+wsgi配置Django项目,修改apache配置文件httpd.conf LoadModule wsgi_module modules/mod_wsgi.so

    django+apache+mod_wsgi.rar

    标题 "django+apache+mod_wsgi.rar" 暗示了这个压缩包是关于使用Django框架与Apache web服务器结合,并通过mod_wsgi模块在Windows 64位平台上部署Python应用的配置。描述中提到的"python3.5+apache2.4vc14+mod_wsgi_...

    apache+python+django开发环境搭建

    无论是Linux还是Windows,搭建Apache + Python + Django开发环境都需要关注几个关键点:Apache服务器的安装与配置、Python与Django的安装、Apache与Django之间的WSGI接口配置以及PYTHONPATH的正确设置。通过本文的...

    Django之Apache mod_python安装及HelloWorld.docx

    本文详细介绍了如何在Windows环境下安装Apache和mod_python,并通过配置Apache虚拟主机实现了Django应用的部署。通过这种方式,可以更高效地开发和测试Django应用,并将其部署到生产环境中。这种方式不仅提高了开发...

    Windows下图文安装Django及WEB服务启动教程

    ### Windows环境下Django安装及WEB服务启动教程 #### 一、前言 Django是一款流行的开源Web框架,基于Python语言开发。它可以帮助开发者快速构建高性能的网站应用。本教程将详细介绍如何在Windows环境下安装Django并...

    Win 下 Django 配置

    在Windows环境下配置Django是一项对新手来说可能有些棘手的任务,但通过以下步骤,我们可以轻松地完成这个过程。本文将详细介绍如何在Windows操作系统上安装和配置Python、Django以及MySQL数据库支持。 首先,我们...

    Windows 7中将Django部署到Apache Web Server.docx

    ### Windows 7中将Django部署到Apache Web Server ...通过遵循上述步骤,可以在Windows 7环境下成功部署Django应用,并通过Apache提供服务。这不仅有助于提升应用的性能,还能增强应用的安全性和可维护性。

    Apache+uWSGI+Django+Mysql环境配置手册

    【Apache+uWSGI+Django+Mysql环境配置】是构建高效稳定Web服务的关键步骤。这个配置组合在Windows环境中尤为常见,适用于Python Django项目的部署。以下是对各个组件的详细说明: 1. **Python安装**: - 从Python...

    Windows server iis部署Django详细操作

    在Windows Server 2012及以上版本的服务器上部署Django Web应用,需要进行一系列的配置和安装步骤。这里重点介绍如何结合Python 3.6和IIS(Internet Information Services)来完成部署。 首先,IIS是Windows系统下...

    Django 2.0项目部署到windows apache 2.4

    在Windows环境中部署Django 2.0项目到Apache服务器,需要确保所有组件的兼容性和正确的配置。以下是详细的步骤和注意事项: **1. 系统环境** 基础环境为Windows 7 SP1 64位操作系统。这里选用的软件包括Apache 2.4...

    在windows及ubuntu下安装django

    而“win-django”这个压缩包子文件的文件名可能是包含了在Windows环境下安装或配置Django的指南、脚本或其他辅助文件,具体的内容需要解压后查看。 总之,无论你是在Windows还是Ubuntu上,安装Django都需要遵循一定...

    搭建apache+python+django+MySQL Web开发环境.docx

    搭建Apache+Python+Django+MySQL Web开发环境 本文将详细介绍如何搭建Apache+Python+Django+MySQL Web开发环境,并对相关的技术进行详细的解释。 一、 Python 语言简介 Python是一种面向对象、直译式计算机程序...

Global site tag (gtag.js) - Google Analytics