2012-04-03 42 views
5

我已經成功地在Ubuntu和Apache 2上使用virtualenv設置了一個Django應用程序,使用指向我的virtualenv位置的WSGIPythonHome指令。現在我需要創建一個單獨的Django應用程序,它將在同一臺Ubuntu服務器的不同端口上的Apache上運行。我想知道是否有辦法讓Apache運行多個WSGIPythonHome實例?目前WSGIPythonHome被設置爲一個virtualenv根,第二個Django應用程序導入時出現問題...在Ubuntu 11上的Apache 2上使用virtualenv的多個Django應用程序

回答

0

您應該在Apache中使用單獨的virtual hosts來執行此操作。每個人都可以收聽特定的端口,並且可以擁有自己獨立的WSGI指令。

+0

我確實爲每個應用程序設置了虛擬主機。我在虛擬主機配置中添加一個WSGI。語法是什麼。在發佈問題之前,我嘗試了一下關於虛擬主機和WSGI的快速搜索,但沒有找到有用的信息 – 2012-04-03 15:15:16

+0

import os,sys import site site.addsitedir('/ home/deploy/virtualenv/expenses/lib/python2.6/site-包'') sys.path.append('/ opt/expenses/current/src') os.environ ['DJANGO_SETTINGS_MODULE'] ='expenses.settings' import django.core.handlers.wsgi application = django。 core.handlers.wsgi.WSGIHandler() – 2012-04-03 15:15:51

+0

上面是我的wsgi指令,我有兩個,每個應用程序一個......但我看不到在哪裏,我可以添加一個WSGIPythonHome指令 – 2012-04-03 15:17:06

2

大約一年前發現的最好方法是使用WSGI作爲守護進程,並在守護進程指令中設置python路徑。示例如下

<VirtualHost *:80> 
    ServerName yourhost.com 

    <Directory /> 
     Order deny,allow 
     #Require all granted 
    </Directory> 

    #Alias /static /opt/yourhost/static 
    WSGIScriptAlias//opt/yourhost/wsgi.py 

    WSGIApplicationGroup %{GLOBAL} 

    WSGIDaemonProcess yourhost.com python-path=/opt/yourhost:/opt/yourhost/venv/lib/python2.7/site-packages processes=2 threads=15 display-name=%{GROUP} 
    WSGIProcessGroup yourhost.com 
</VirtualHost> 
WSGISocketPrefix /var/run/wsgi 
相關問題