使用windows在apache上部署多个Django项目

sha*_*r90 7 python windows apache django mod-wsgi

我试图给一个域名并在我的apache上运行多个django项目,目前我设法托管一个应用程序并在127.0.0.1:8888运行它的设置看起来像这样.

WSGIScriptAlias / C:/Users/ShabeerSheffa/workspace/ApacheDemo/ApacheDemo/wsgi.py
WSGIPythonPath C:/Users/ShabeerSheffa/workspace/ApacheDemo

<Directory C:/Users/ShabeerSheffa/workspace/ApacheDemo>
    <Files wsgi.py>
        Order deny,allow
        Allow from all
    </Files>
</Directory>
Run Code Online (Sandbox Code Playgroud)

我尝试将上面的代码更改为下面的代码,使用域名,因此我可以使用apachedemo.com访问它,但失败了.

NameVirtualHost apachedemo.com   

<VirtualHost apachedemo.com>    
    ServerName apachedemo.com  
    ServerAlias www.apachedemo.com

    WSGIScriptAlias / C:/Users/ShabeerSheffa/workspace/ApacheDemo/ApacheDemo/wsgi.py
    WSGIPythonPath C:/Users/ShabeerSheffa/workspace/ApacheDemo

    DocumentRoot C:/Users/ShabeerSheffa/workspace/ApacheDemo

    <Directory C:/Users/ShabeerSheffa/workspace/ApacheDemo>
        <Files wsgi.py>
            Order deny,allow
            Allow from all
        </Files>
    </Directory>    

</VirtualHost> 
Run Code Online (Sandbox Code Playgroud)

我目前在Windows 7机器上使用端口8888为我的apache,127.0.0.1:8888为第一个版本的代码工作,但在编辑代码后,apache在重启apache时出错.

这是我的主机文件的样子,我只添加了最后一行.(不太清楚为什么在第二行和第三行有#)

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost
    127.0.0.1:8888       apachedemo.com       www.apachedemo.com
Run Code Online (Sandbox Code Playgroud)

我想找到两个问题的答案 -

  1. 我如何让apachedemo.com工作
  2. 如何在同一台服务器上添加另一个项目,例如apachedemo2.com

编辑:我正在使用eclipse开发我的项目

非常感谢帮助人员

Mar*_*agh 4

尝试以下配置。您可能还会发现这个问题很有用,并且在 mod wsgi 文档中,有一个关于虚拟主机的部分也可能对您有所帮助。

WSGIPythonPath C:/Users/ShabeerSheffa/workspace/ApacheDemo

<VirtualHost apachedemo.com:8888>
    ServerName apachedemo.com
    WSGIScriptAlias / C:/Users/ShabeerSheffa/workspace/ApacheDemo/ApacheDemo/wsgi.py

    <Directory C:/Users/ShabeerSheffa/workspace/ApacheDemo>
        <Files wsgi.py>
            Order deny,allow
            Allow from all
        </Files>
    </Directory>
</VirtualHost>

<VirtualHost apachedemo2.com:8888>
    ServerName apachedemo2.com
    WSGIScriptAlias / C:/Users/ShabeerSheffa/workspace/ApacheDemo/apachedemo2/wsgi.py

    <Directory C:/Users/ShabeerSheffa/workspace/ApacheDemo>
        <Files wsgi.py>
            Order deny,allow
            Allow from all
        </Files>
    </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

更新

下面的评论之一询问您是否可以在每个虚拟主机中拥有不同的 WSGIPythonPath。查看配置文档WSGIPythonPath 只能在上下文服务器配置中,而不是虚拟主机中。但是,您可以添加到 wsgi 文件本身的路径,如本答案所示。您还可以尝试使用 python-path 查看 WSGIDaemonProcess,如本问题所示。