1、 Djangosettings的路徑問題

要將相對路徑改為絕對路徑。主要有: 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_pythonmodule

http.conf中必須加入:

LoadModule python_module modules/mod_python.so

3、 VirtualHost的配置

取消httpd.confInclude 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_ROOTTEMPLATE_DIRSSTATIC_PATH是否設置為絕對路徑;

最后,檢查apacheerror日志,若發現:

[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時遇到的問題,希望能給遇到同樣問題的朋友一點幫助。