簡體   English   中英

在Centos 5上使用mod_wsgi和apache將Django App掛接到子目錄

[英]Hooking Django App to subdirectory using mod_wsgi and apache on Centos 5

背景:

我正在為我的辦公室將Django應用程序投入生產。 到目前為止,該應用程序已經開發並且可以正常工作,而要做的就是部署該應用程序。 不幸的是,這項任務比開發應用程序本身更麻煩。 我正在使用Apache 2.2,mod_wsgi 3.3以及virtualenv中的Python 2.7和Django 1.9在Centos 5.11服務器上工作。

問題

我遇到的問題是將Django應用掛接到我域的子目錄(www.abc.example.com/FR/),但是在配置apache的httpd.conf時卻遇到了問題,其中似乎未保存我添加的設置。 我已經按照httpd.conf的注釋運行了以下命令,以確保在重新啟動后保存更改:

/usr/local/cpanel/bin/apache_conf_distiller --update 
/usr/local/cpanel/bin/build_apache_conf

我使用的指南將我引導至以下代碼:*請注意,“〜”代表/ home / [用戶名]

httpd.conf

LoadModule wsgi_module extramodules/mod_wsgi.so

...

WSGIScriptAlias /FR ~/public_html/FR/django.wsgi
WSGIPythonPath ~/public_html/FR

<Directory ~/mydjango/IFTP>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

django.wsgi,位於〜/ public_html / FR / django.wsgi

import os
import sys

sys.path.append('~/mydjango')
sys.path.append('~/mydjango/IFTP')

os.environ['DJANGO_SETTINGS_MODULE'] = 'IFTP.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

wsgi.py,位於〜/ mydjango / IFTP / wsgi.py

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "IFTP.settings")

application = get_wsgi_application()

編輯1:

抱歉,我應該進一步指出問題是這些設置沒有生效。 當我轉到www.abc.example.com/FR/時,遇到找不到404的消息,因此wsgi腳本配置錯誤或設置不正確,這是我需要幫助的地方。

搜索后,我發現問題出在django.wsgi文件中,該文件提供了不必要的額外層。 我將httpd.conf文件更改為以下代碼,進一步指定了virtualenv的路徑並鏈接到wsgi.py文件。

LoadModule wsgi_module extramodules/mod_wsgi.so

WSGIScriptAlias /FR ~/mydjango/IFTP/wsgi.py
WSGIPythonPath "~/mydjango/lib/python2.7/site-packages:~/mydjango"
WSGIPythonHome ~/mydjango

<Directory ~/mydjango/IFTP>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM