使用Windows在Apache上部署多个Django项目

wixjitnu  于 2023-06-06  发布在  Apache
关注(0)|答案(3)|浏览(483)

我试图给予一个域名并在我的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访问它,但是失败了。

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工作
1.如何在同一台服务器上添加其他项目,例如apachedemo2.com
编辑:我正在使用Eclipse开发我的项目
谢谢你们的帮助

wljmcqd8

wljmcqd81#

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

ego6inou

ego6inou2#

请务必阅读:

Django 1.4中自动生成的wsgi.py文件的方式是,你不能在不同的子解释器下在同一进程中托管两个Django示例。您需要更改wsgi.py文件。
这是对Apache配置可能存在的任何问题的补充(如果您仍然存在任何问题)。因为尽管你通过给出任何错误消息来模糊错误的确切内容,但很难猜测你遇到的问题是什么。

6tqwzwtp

6tqwzwtp3#

最好的解决方案是在它自己的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>

相关问题