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

2024-10-01 15:38:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图给一个域名,并在我的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>

我试着把上面的代码改成下面的代码,用一个域名,这样我就可以用apachedemo.com网站但惨败。在

^{pr2}$

我目前在Windows7机器上为我的apache使用端口8888,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开发我的项目

非常感谢你们的帮助


Tags: 项目代码pycomlocalhostwsgiapachefiles
3条回答

请务必阅读:

自动生成的wsgi.pyDjango1.4中的文件以一种方式执行,即不能在不同的子解释器下托管同一进程中的两个Django实例。你需要改变wsgi.py文件。在

这是对Apache配置可能存在的任何问题(如果仍然存在的话)的补充。因为尽管你通过给出错误信息来模糊错误到底是什么,但很难猜测你遇到了什么问题。在

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

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

试试下面的配置。您可能还发现这个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 docsWSGIPythonPath只能在上下文服务器配置中,而不能在virtualhost中。但是,您可以将wsgi文件本身添加到路径中,作为shown in this answer。您还可以尝试使用python路径查看WSGIDaemonProcess,如this question所示。在

相关问题 更多 >

    热门问题