如何在Windows中的apache上部署多个django应用程序?

ldioqlga  于 2023-01-17  发布在  Apache
关注(0)|答案(1)|浏览(210)

我想在Windows上的Apache上部署多个Django应用程序,但只知道如何部署一个。
覆盖Wamp服务器的本地主机我可以部署应用程序没有问题,但我需要部署更多,不知道如何。我已经看到虚拟主机,并认为是好的,但不知道如何配置他们。有人知道我怎么做吗?提前感谢。

q1qsirdb

q1qsirdb1#

使用虚拟主机(vhosts)可以在Apache上托管多个django应用
重要关注事项:
1.在配置Apache期间,我建议从命令行以"httpd.exe"启动Apache,因为在XAMPP或WAMP中,您不会在error.log文件中看到一些初始启动错误消息。
1.你可以只使用1 python版本甚至在不同virt.env为每个vhost作为apache模块mod_wsgi编译需要到fit到它并且是装载一次在apache的启动
类似于httpd.conf中内容(由于您运行的是单个应用程序配置,因此应该已经有了这些内容):

LoadFile "c:/.../python/python38/python38.dll"
LoadModule wsgi_module "c:/..../mod_wsgi.cp38-win_amd64.pyd"

1.如何设置virt.env和app文件夹路径:
对于1个主机,您可以通过设置WSGIPythonHome和WSGIPythonPath指向httpd.conf中的应用程序文件夹来指向virt.env:

WSGIPythonHome "d:/..../django_project/env_folder"
WSGIPythonPath "d:/..../django_project/app_name"

但是:您不能将WSGIPythonHome/WSGIPythonPath放在httpd-vhosts. conf中的虚拟主机声明内....这将导致错误消息
解决方案:在www.example.com中动态设置路径,并从apache *. conf中删除WSGIPythonHome/WSGIPythonPath:wsgi.py dynamically and remove WSGIPythonHome/WSGIPythonPath from apache *.conf:
一个二个一个一个
1.下面是apache配置示例:
(why虚拟主机:有一个apache的行为(奇怪或错误)...如果没有一个虚拟主机名匹配请求,那么apache会自动将请求发送到配置文件中的第一个vhost--不管那里定义了哪个服务器名。这可能会导致混乱,因为调用了完全错误的应用程序,并且肯定会从django内部弹出错误消息,并不表示错误发生在Apache配置级别上。一个带有简单index.html和错误消息的虚拟主机可以使此问题透明化)
httpd-vhost.conf:

<VirtualHost *:80>
     ServerName Dumme_Host
     DocumentRoot "d:/WEBSPACES/Dummy_Host"

     <Directory d:/WEBSPACES/Dummy_Host>
         Require all granted
     </Directory>
</VirtualHost>

<VirtualHost *:80>

     ServerName  xxxx1
     WSGIScriptAlias / "d:/.... /wsgi.py" application-group=app_name1
     Alias /media/ d:/.../media/
     Alias /static/ d:/.../static/

     <Directory d:/.../app_name1>
         Require all granted
     </Directory>

     <Directory d:/.../media>
         Require all granted
     </Directory>

     <Directory d:/.../static>
         Require all granted
     </Directory>

</VirtualHost>

<VirtualHost *:80>

     ServerName  xxxx2
     WSGIScriptAlias / "d:/.... /wsgi.py" application-group=app_name2
     Alias /media/ d:/.../media/
     Alias /static/ d:/.../static/

     <Directory d:/.../app_name2>
         Require all granted
     </Directory>

    .....

</VirtualHost>

相关问题