亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

Windows下Django配置Apache設置

添加時間:2011-3-14  添加: admin 
我們假設您熟悉以下知識:

n         Python

n         Django

n         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_ROOT、STATIC_PATH、TEMPLATE_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>
 

 配置Django到Apache的步驟:
如何在Windows環境下安裝Apache和mod_Python, 這篇Blog解釋得很明白,我下面的這些步驟得到了驗證。

1:從 http://httpd.apache.org/來獲取apache_2.2.3-win32-x86-no_ssl.msi這個安裝文件;運行這個msi即可順利安裝Apache。2:

網絡上有很多說可以利用Apache和mod_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:

配置Apache的httpd.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 !

為了讓圖片、css、能夠被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>
  

Limodou在Step by step中特地說“同時可以注意到 settings 我改為了 settings_apache 了。一方面將要把其中的內容有關相對路徑的東西改為絕對路徑,另一方面我還想保持現在的 settings.py 。”這也是一個很好的做法。

最后,修改MaxRequestsPerChild為1,這是一個可選項。Limodou是這么說的“同時如果你不想每次重啟Apache 來進行測試,可以將: MaxRequestsPerChild 0. 改為: MaxRequestsPerChild 1”

 重啟Apache服務。

6:

瀏覽 http://localhost:80/mysite/ 即可。


關鍵字:Windows Django 配置 Apache 設置

分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站