1

注意:为保护隐私,URL、用户名等已更改。

我正在用 Flask 设计一个 API,但该网站最初是用 PHP 编写的。最终这将被改变,但目前我希望两者在同一个 url 上并排运行,我们将其命名为 domain.com。Flask API 应位于 www.domain.com/api 和 PHP 网站位于 www.domain.com。

网站的 Apache 文件位于:/etc/apache2/sites-available/domain.com。通过使用下面的单个设置之一并重新启动 apache,我可以让该框架单独运行,但我还没有弄清楚如何将它们都放在文件中并在没有问题的情况下运行。

烧瓶(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,但我还没有找到解决方案。

4

1 回答 1

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>
于 2013-08-08T04:27:41.370 回答