Как настроить 2 виртуальных окружения django на 1 сервере apache
Окружение:
Apache: 2.4
Python 3.7.2 (32bit)
1-й Django: 2.1.15
2-й Django: 3.2.11
Система: Windows Server 2016
База данных: SQL Server 2016
Я новичок в Apache и хочу добавить новый проект Django (3.2.11) на сервер Apache, который уже давно обслуживает другой проект Django (2.1.15). После проверки некоторых руководств в интернете, я все еще могу позволить только один проект Django, ниже приведены мои конфигурации:
файл: httpd.conf
Слушать *:1111
Слушать *:2222
active LoadModule vhost_alias_module modules/mod_vhost_alias.so
>
активный Include conf/extra/httpd-vhosts.conf
файл: httpd-vhosts.conf
LoadFile "C:/Program Files (x86)/Python37-32/python37.dll"
LoadModule wsgi_module "d:/django_project1/env1/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win32.pyd"
WSGIPythonHome "d:/django_project1/env1/"
#WSGIPythonHome "d:/django_project2/env2/" <- I can't active both WSGIPythonHome at same time.
<VirtualHost *:1111>
ServerName http://10.198.170.91
ServerAlias http://10.198.170.91
WSGIScriptAlias / D:/django_project1/web_project/web_project/wsgi_windows.py
<Directory D:/django_project1/web_project/web_project>
<Files wsgi_windows.py>
Require all granted
</Files>
</Directory>
Alias /static D:/django_project1/web_project/apps/static
<Directory D:/django_project1/web_project/apps/static\>
AllowOverride None
Options None
Require all granted
</Directory>
DocumentRoot "D:/django_project1/web_project"
<Directory "D:/django_project1/web_project">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
ErrorLog "logs/django_project1-error.log"
CustomLog "logs/django_project1-access.log" common
</VirtualHost>
<VirtualHost *:2222>
ServerName http://10.198.170.91
ServerAlias http://10.198.170.91
WSGIScriptAlias / D:/django_project2/web_project/web_project/wsgi_windows.py
<Directory D:/django_project2/web_project/web_project>
<Files wsgi_windows.py>
Require all granted
</Files>
</Directory>
Alias /static D:/django_project2/web_project/apps/static
<Directory D:/django_project2/web_project/apps/static\>
AllowOverride None
Options None
Require all granted
</Directory>
DocumentRoot "D:/django_project2/web_project"
<Directory "D:/django_project2/web_project">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
ErrorLog "logs/django_project2-error.log"
CustomLog "logs/django_project2-access.log" common
</VirtualHost>
django_project1's wsgi_windows.py:
import os
import sys
import site
from django.core.wsgi import get_wsgi_application
site.addsitedir("D:/django_project1/env1/Lib/site-packages")
sys.path.append('D:/django_project1/web_project')
sys.path.append('D:/django_project1/web_project/web_project')
os.environ['DJANGO_SETTINGS_MODULE'] = 'web_project.settings'
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web_project.settings")
application = get_wsgi_application()
django_project2's wsgi_windows.py:
import os
import sys
import site
from django.core.wsgi import get_wsgi_application
site.addsitedir("D:/django_project2/env2/Lib/site-packages")
sys.path.append('D:/django_project2/web_project')
sys.path.append('D:/django_project2/web_project/web_project')
os.environ['DJANGO_SETTINGS_MODULE'] = 'web_project.settings'
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web_project.settings")
application = get_wsgi_application()
Я обнаружил, что если я активирую WSGIPythonHome "d:/django_project1/env1/"
, сайт 1-го проекта Django (http://10.198.170.91:1111) доступен, а 2-го проекта Django нет, если я активирую WSGIPythonHome "d:/django_project2/env2/"
, сайт 2-го проекта Django (http://10.198.170.91:2222) доступен, а 1-го проекта Django нет
Если я активирую оба WSGIPythonHome "d:/django_project1/env1/"
и WSGIPythonHome "d:/django_project2/env2/"
, служба apache не может нормально запуститься.
Я пробовал много способов, но сервер Apache увидел, что не может установить 2 WSGIPythonHome одновременно, я схожу с ума, может кто-нибудь помочь мне? Большое спасибо!