`
winebibber
  • 浏览: 118345 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Django与apache常见配置问题

阅读更多

1、 Django settings的路径问题

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

示例:

MEDIA_ROOT = 'D:/WorkDev/workspace/djangoTest'

TEMPLATE_DIRS = (

    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".

    # Always use forward slashes, even on Windows.

    # Don't forget to use absolute paths, not relative paths.

    'D:/WorkDev/workspace/djangoTest/templates',

)

STATIC_PATH = 'D:/WorkDev/workspace/djangoTest/media'

2、 httpd.conf中应加入 mod_python module

http.conf中必须加入:

LoadModule python_module modules/mod_python.so

3、 VirtualHost的配置

取消 httpd.conf Include conf/extra/httpd-vhosts.conf前的注释,就可以在 httpd-vhosts.conf文件中配置 VirtualHost

4、 PythonPath的路径问题

   <Location "/">

        SetHandler python-program

        PythonPath "['D:/WorkDev/workspace'] + sys.path"

        PythonHandler django.core.handlers.modpython

        SetEnv DJANGO_SETTINGS_MODULE djangoTest.settings_apache

        PythonAutoReload Off

        PythonDebug On

</Location>

注意这里的 PythonPath,将 project的目录加入 PythonPath时,应为此 project的上一级目录,比如这里就不能写为‘ D:/WorkDev/workspace/ djangoTest’,否则会找不到 settings的配置。

5、 静态文件的配置

为了让图片、 css js能够被 apache加载,需进行如下配置:

Alias /site_media D:/WorkDev/workspace/djangoTest/media

<Location "/site_media">

    SetHandler None

</Location>

6、 静态文件无法加载的问题

首先,检查 Alias设置的路径是否正确;

其次,检查 settings.py中的 MEDIA_ROOT TEMPLATE_DIRS STATIC_PATH是否设置为绝对路径;

最后,检查 apache error日志,若发现:

[Thu Jul 31 14:36:08 2008] [error] [client 127.0.0.1] client denied by server configuration: D:/WorkDev/workspace/djangoTest/media/djangopowered.gif, referer: http://localhost:8080/address/

那么说明是因为对这些静态文件的访问被拒绝了,应加入 Directory的配置:

<Directory "D:/WorkDev/workspace/djangoTest/media/">

        Order Deny,Allow

        Allow from all

</Directory>

重启 apache服务。

以上均为我在搭建apache+mod_python时遇到的问题,希望能给遇到同样问题的朋友一点帮助。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics