簡體   English   中英

使用 Apache 和 mod_wsgi Windows 部署多個 Django 網站

[英]Deploying Multiple Django Websites with Apache & mod_wsgi Windows

我在 Apache 2.4 的 virtualenv 中使用 mod_wsgi,我想從同一台服務器提供多個 Django 站點。

httpd配置文件

### Configuration Site_1
LoadModule wsgi_module " S:/Site_1/VirtualEnvSite_1/Lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIApplicationGroup %{GLOBAL}
WSGIPythonHome "c:/users/mmyuser/appdata/local/programs/python/python36"
WSGIScriptAlias / " S:/Site_1/site_1/site_1/wsgi_windows.py"
WSGIPythonPath " S:/Site_1/VirtualEnvSite_1/Lib/site-packages"

Alias /static " S:/Site_1/site_1/staticfiles"
Alias /media " S:/Site_1/site_1/media"

<Directory " S:/Site_1/site_1/staticfiles">
    Require all granted
</Directory>

<Directory " S:/Site_1/site_1/media">
    Require all granted
</Directory>

<Directory " S:/Site_1/site_1/PEQ">
    <Files wsgi_windows.py>
        Require all granted
    </Files>
</Directory>

####Configuration Site_2
LoadModule wsgi_module " S:/Site_2/VirtualEnvSite_2/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIApplicationGroup %{GLOBAL}
WSGIPythonHome "c:/users/myuser/appdata/local/programs/python/python36"
WSGIScriptAlias / " S:/Site_2/site_2/site_2/wsgi_windows.py"
WSGIPythonPath " S:/Site_2/VirtualEnvSite_2/Lib/site-packages"

Alias /static " S:/Site_2/site_2/staticfiles"
Alias /media " S:/Site_2/site_2/media"

<Directory " S:/Site_2/site_2/staticfiles">
    Require all granted
</Directory>

<Directory " S:/Site_2/site_2/media">
    Require all granted
</Directory>

<Directory " S:/Site_2/site_2/site_2">
    <Files wsgi_windows.py>
        Require all granted
    </Files>
</Directory>

httpd-vhosts.config

# Virtual Hosts
#
<VirtualHost *:8080>
    ServerAdmin webmaster@localhost
    DocumentRoot "c:/wamp/www"
    ServerName localhost
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost-access.log" common
</VirtualHost>

我已經查看了這些帖子:

  1. 使用 mod_wsgi 在 Apache 上部署多個 django 應用程序
  2. 多個 django 站點與 apache-mod-wsgi
  3. running-multiple-django-projects-on-one-apache-instance-with-mod_wsgi/
  4. Múltiples direcciones, un solo 項目
  5. 如何使用 mod-wsgi-for-hosting-multiple-django-projects-under-single-domain

但他們沒有為我工作。

服務器是Windows Server 2012R2

請指導我應該如何啟動和運行這兩個站點。

注意:網站完全獨立工作

我也有類似的問題。 我已經找了很多帖子,我注意到與你不同的一件事是:

WSGIScriptAlias / " S:/Site_1/site_1/site_1/wsgi_windows.py"
WSGIScriptAlias / " S:/Site_2/site_2/site_2/wsgi_windows.py"

我在別名中標識了該站點:

WSGIScriptAlias /site1 " S:/Site_1/site_1/site_1/wsgi_windows.py"
WSGIScriptAlias /site2 " S:/Site_2/site_2/site_2/wsgi_windows.py"

我正在使用進程守護程序:

WSGIScriptAlias /site1 /site1/wsgi.py
WSGIDaemonProcess site1_proc python-path=S:/Site_1/VirtualEnvSite_1/Lib/site-packages python-home="c:/users/mmyuser/appdata/local/programs/python/python36"
WSGIProcessGroup site1_proc 

就我而言,由於其他原因,它仍然無法正常工作。 我還沒有確定。 單個應用程序使用反向代理正確運行。 但是當我激活兩者時,其中一個給出錯誤: AH00128: File does not exist: /var/www/html/myapp2/ 配置文件是相同的。

這是我設置多個項目的配置 apache | windows | wsgi

httpd配置文件

LoadFile "c:/python37/python37.dll"
LoadModule wsgi_module "c:/python37/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd"
WSGIPythonHome "c:/python37"

# site 1 config
WSGIScriptAlias /site1 "C:/Payslips/payslips_app/wsgi.py" application-group=site1

<Directory "C:/Payslips/payslips_app/">
    <Files wsgi.py>
        Require all granted
    </Files>
</Directory>

Alias /static "C:/Payslips/static/"
<Directory "C:/Payslips/static/">
    Require all granted
</Directory>

# site 2 config
WSGIScriptAlias /site2 "C:/Subsistance-Payments-System/subsistance_payment/wsgi.py" application-group=site2

<Directory "C:/Subsistance-Payments-System/subsistance_payment/">
    <Files wsgi.py>
        Require all granted
    </Files>
</Directory>

站點 1 wsgi.py

import os
import sys
from django.core.wsgi import get_wsgi_application

sys.path.append('C:/Payslips/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'payslips_app.settings'
application = get_wsgi_application()

站點 2 wsgi.py

import os
import sys
from django.core.wsgi import get_wsgi_application

sys.path.append('C:/Subsistance-Payments-System/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'subsistance_payment.settings'
application = get_wsgi_application()

暫無
暫無

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

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