我正在尝试在Mac服务器上配置一个Apache服务器来同时服务Web2 Py应用程序和Flask应用程序。这已经变成了一个温和的噩梦。我希望用户能够访问以下URLhttp:/my.domain.com/
-Web2 py网站http:/my.domain.com/suburl
-培养瓶位置
不幸的是,当我访问subll时,它总是把我带到Web2 py站点(然后它就崩溃了,因为没有名为subll的应用程序)。
NameVirtualHost *:80
# Flask Site
<VirtualHost *:80>
ServerName my.domain.com/suburl
WSGIDaemonProcess flask-suburl user=_www group=_www
WSGIProcessGroup flask-suburl
WSGIScriptAlias /suburl /Users/myname/suburl/app.wsgi
<Directory /Users/myname/suburl>
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
# Web2py Site
<VirtualHost *:80>
ServerName my.domain.com
WSGIDaemonProcess web2py-main user=_www group=_www
WSGIProcessGroup web2py-main
WSGIScriptAlias / /Users/myname/web2py/wsgihandler.py
<Directory /Users/myname/web2py>
AllowOverride None
Order Allow,Deny
Deny from all
<Files wsgihandler.py>
Allow from all
</Files>
</Directory>
</VirtualHost>
重新排序两个VirtualHost定义没有任何作用,删除Web2 py站点允许我访问Flask站点。
我不希望将它们合并到一个VirtualHost中,因为这会导致两个应用程序共享同一个Python解释器的问题,而且某些C扩展显然会出错。
我已经更改了域和其他一些名称以隐藏受保护的信息。我还排除了一些处理静态子文件夹服务的AliasMatch命令。在端口443上还有另一个用于SSH服务器的VirtualHost,但我没有包括它,因为我希望它不会影响任何事情。
那么,我究竟如何才能做到这一点,使我可以访问这两个网站,而不是Web2 py网站吞噬一切?
1条答案
按热度按时间yh2wf1be1#
对于任何来到这里的人来说,我已经解决了我的问题。这是一个简单的错误,我可以发誓我以前试过这样做。
在Flask站点的配置中,我应该执行以下操作:
请注意,ServerName的末尾不再有
/suburl
,而是要确保将其添加到WSGIScriptAlias的第一个参数中,当您查看WSGIScriptAlias的文档时,推理就会变得很清楚;第一个参数是正在访问的URL路径。ServerName必须保持纯值。