我正在尝试提供域名并在我的apache上运行多个django项目,目前我设法托管一个应用程序并在 127.0.0.1:8888 <上运行它/ strong>设置看起来像这样。
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>
我目前在Windows 7机器上使用端口8888为我的apache,在第一版代码中使用127.0.0.1:8888,但在编辑代码后,apache在重启apache时出错。
这是我的主机文件的样子,我只添加了最后一行。(不太确定为什么在第二行和第三行有<#em>)
# 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
我想找到两个问题的答案 -
非常感谢帮助人员
答案 0 :(得分:4)
尝试以下配置。您可能还会发现这个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所示。
答案 1 :(得分:4)
请务必阅读:
Django 1.4中自动生成的wsgi.py文件以不同的子解释器在同一进程中托管两个Django实例的方式执行。您需要更改wsgi.py文件。
如果您还有任何问题,这是Apache配置可能遇到的任何问题。由于您通过提供任何错误消息而确切地知道错误是什么,因此很难猜出您遇到的问题是什么。
答案 2 :(得分:1)
最好的解决方案是在它自己的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