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

问题描述:

我想给一个域名并在我的apache上运行多个django项目,目前我设法托管一个应用程序并运行它127.0.0.1:8888设置看起来像这样。在windows上部署多个Django项目使用windows

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> 

我试图改变上面的代码看起来像下面的代码,用一个域名,所以我可以使用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> 

我目前正在使用的端口8888我的Apache在Windows 7计算机,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 

我试图找到答案有两个问题 -

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

编辑:我使用eclipse

非常感谢您的帮助球员

尝试下面配置了发展我的项目。你也可能会发现这个question有用,在mod wsgi文档中有一个关于virtualhosts的部分,它可能对你有帮助。

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> 

更新

一问之下的评论,你可以在每一个虚拟主机不同WSGIPythonPath。查看configuration docs WSGIPythonPath只能在上下文服务器配置中,而不能在虚拟主机上。但是,您可以将自己的wsgi文件中的路径添加为shown in this answer。您也可以尝试使用python-path来查看WSGIDaemonProcess,如this question中所示。

+0

我认为我有,因为我的Apache使用该端口,它仍然没有工作切换到:| ,“糟糕!谷歌浏览器找不到apachedemo.com” – shabeer90

+0

是的你是对的,它应该改为8888.我不知道为什么它不工作。 –

+0

我得到你的代码工作:),只是想知道如果我可以有两个不同的WSGIPythonPath的,因为我有两个项目正在运行.. – shabeer90

请务必阅读:

自动生成wsg​​i.py文件在Django 1.4做的事情中,你不能承载不同的子下在同一过程中的两个的Django实例的方式口译。您将需要更改wsgi.py文件。

如果您还有任何问题,还可以使用Apache配置。因为尽管通过提供任何错误消息你确切地知道错误是什么,但很难猜测你的问题是什么。

最好的解决方案是在它自己的Django实例中运行它自己的WSGI流程上的每个Django项目。

WSGIPythonPath /var/www/path/web:/var/www/path/api 

WSGIDaemonProcess api_wsgi user=user group=group 
WSGIScriptAlias /api /var/www/path/api/wsgi.py 
<Location /api> 
WSGIProcessGroup api_wsgi 
</Location> 

WSGIDaemonProcess web_wsgi user=user group=group 
WSGIScriptAlias /web /var/www/path/web/wsgi.py 
<Location /web> 
#SetEnv DJANGO_SETTINGS_MODULE project.settigs 
WSGIProcessGroup web_wsgi 
</Location> 

在该主题的帖子: http://www.area0x33.com/blog/?p=155