我试图在Mac服务器上配置apache服务器来同时为Web2Py应用程序和Flask应用程序提供服务。这已成为一场温和的噩梦。我希望用户能够访问以下网址
http:/my.domain.com/
- Web2py网站
http:/my.domain.com/suburl
- Flask网站
不幸的是,当我访问郊区时,它总是把我带到Web2py网站(然后因为没有名为“郊区”的应用程序而吓坏了)。这是我的.conf
文件:
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定义并没有做任何事情。删除Web2py站点允许我访问Flask站点。
我宁愿不将它们合并到一个VirtualHost中,因为这会导致共享相同Python解释器的两个应用程序出现问题,并且某些C扩展显然正在翻转。
我已更改域名和其他一些名称以隐藏受保护的信息。我还排除了一些处理静态子文件夹服务的AliasMatch命令。在端口443上还有另一个用于SSH服务器的VirtualHost,但是我没有包含它,因为我希望它不会影响事情。
那么我该如何制作它以便我可以访问这两个网站,而不是吞噬所有内容的Web2py网站?
答案 0 :(得分:0)
对于任何来这里的人,我已经解决了我的问题。这是一个简单的错误,我可以发誓我曾经尝试过这个。
在Flask网站的配置中,我应该这样做:
ServerName my.domain.com
...
WSGIScriptAlias /suburl /Users/myname/suburl/app.wsgi
请注意,ServerName的末尾不再有/suburl
。相反,请确保已将其添加到WSGIScriptAlias的第一个参数中。当你看the documentation for WSGIScriptAlias时,推理就会变得清晰;第一个参数是正在访问的URL路径。 ServerName必须保持纯粹。