注意:网址,用户名等已因隐私而更改。
我正在Flask中设计一个API,但该网站最初是在PHP中。最终这将被更改,但目前我希望两者在同一个网址上并排运行,我们将其称为domain.com。 Flask API应位于www.domain.com/api和PHP网站www.domain.com。
网站的Apache文件位于:/etc/apache2/sites-available/domain.com。通过使用下面的一个单独的设置并重新启动apache,我可以让该框架单独运行,但我还没有想出如何在文件中运行它们并且没有问题地运行。
Flask(www.domain.com/api):
<VirtualHost *:80>
ServerAdmin webmaster@domain.com
ServerName www.domain.com
WSGIDaemonProcess api user=www-data group=www-data threads=5
WSGIScriptAlias /api /home/user/public_html/api/api.wsgi
<Directory /home/user/public_html/api>
WSGIProcessGroup api
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
PHP(www.domain.com):
<VirtualHost *:80>
ServerAdmin webmaster@domain.com
ServerName www.domain.com
DirectoryIndex index.php
DocumentRoot /home/user/public_html/domain.com/
</VirtualHost>
我已尝试过一些像Directory和Alias这样的东西,但我还没有找到解决方案。
答案 0 :(得分:0)
当我发现WSGIScriptAlias与Alias的工作方式类似时,答案非常简单。然后我可以简单地将两者结合起来,它的工作方式就是我想要的。
<VirtualHost *:80>
ServerAdmin webmaster@domain.com
ServerName www.domain.com
DirectoryIndex index.php
DocumentRoot /home/user/public_html/domain.com/
WSGIDaemonProcess api user=www-data group=www-data threads=5
WSGIScriptAlias /api /home/user/public_html/api/api.wsgi
<Directory /home/user/public_html/api>
WSGIProcessGroup api
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>