Apache服務器配置mod_wsgi


  初學Django,最近被Apache服務器布置Django應用搞的很頭疼,好不容易配置成功,所以把配置過程記載下來。

  我的環境是Apache 2.4,Django 1.7.7和mod_wsgi 4.4.11, 上一篇文章http://www.cnblogs.com/hkyang/p/4439980.html講了編譯mod_wsgi源碼,編譯完成后mod_wsgi-py34-VC10.so文件會自動拷貝到Apache的modules目錄下,找到Apache目錄下的httpd.conf文件,打開,在其中添加一行內容:

LoadModule wsgi_module modules/mod_wsgi-py34-VC10.so

然后繼續添加如下內容:

WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
WSGIPythonPath /path/to/mysite.com

<Directory /path/to/mysite.com/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

  一,將/path/to/mysite.com/mysite/wsgi.py替換為Django工程中的wsgi.py文件的路徑,如:D:/mysite/mysite/wsgi.py。

  二,/path/to/mysite.com即為Django工程的路徑,將其替換為相應的路徑,如:D:/mysite。

  三,/path/to/mysite.com/mysite路徑的作用是確保Apache能訪問上面提到的wsgi.py文件,將其替換為wsgi.py文件所在的路徑,如:D:/mysite/mysite。

  四,如果Apache的版本是2.4之前的版本,那么將Require all granted替換為:Allow from all,並在它上面再添加一行內容:Order deny,allow。

  接下來,還需要配置應用中使用到的靜態文件(如css,javascript文件等)的路徑,否則Apache服務器會找不到這些文件。這里使用Django提供的admin應用為例,admin應用需要使用的css文件和圖片等可以在Django的安裝位置找到,我的位置在C:\Python34\Lib\site-packages\Django-1.7.7-py3.4.egg\django\contrib\admin\static,將static目錄整個拷貝到Django工程的目錄下,然后打開settings.py文件,在其中添加內容:

STATIC_ROOT = 'D:/mysite/static'
STATIC_URL = '/static/'
STATIC_DIRS = (
    'D:/mysite/static',
)

  接下來打開urls.py文件,編輯內容如下:

from django.conf.urls import patterns, include, url
from django.contrib import admin
from django.conf.urls.static import static
from django.conf import settings

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'mysite.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),

    url(r'^admin/', include(admin.site.urls)),
)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

  配置完成,重啟Apache服務器,使用admin應用進行測試,一切正確!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM