是否有可能在 Apache 上使用 flask api 运行 和相同域的 运行 PHP 站点?

Is it possible to have flask api running on apache with already running PHP site for same domain?

是否可以 运行 flask rest api 在 apache + ubuntu 服务器中 PHP 网站已经是 运行 那个域??

简而言之:如果我浏览 url www.example.com then normal php website should load. if I call www.example.com/services/api 那么 flask api 应该会给出结果....

已更新 => 回答 最后我找到了一个解决方案,如果它可以帮助某人,请在这里发布...... (Ubuntu 服务器)

-->使用 root(假设 Python 和 Pip 已经安装)

  1. sudo apt-get install libapache2-mod-wsgi-py3 python3-dev
  2. sudo apt-get install python3-pip
  3. pip3 install virtualenv

-->域用户 导航到要创建虚拟环境的文件夹...然后键入以下命令(您可以根据需要更改虚拟环境名称)

  1. python3 -m virtualenv myenv <-(任意名称)
  2. 使用命令激活环境 source myenv/bin/activate
  3. 使用推荐安装 flask pip install flask
  4. 在数据下创建文件--> flaskapp.wsgi 在项目文件夹或任何你想要的地方...然后跟随代码
import logging
 import sys

activate_this = '/your/envfolder/path/bin/activate_this.py'

exec(compile(open(activate_this).read(), activate_this, 'exec'), dict(__file__=activate_this))

logging.basicConfig(stream=sys.stderr)
sys.path.insert(0, '/your/app/folder/path/where/you/can/import/app')
from App import app as application
#application.secret_key = 'anything-you-wish'

最后 etc/apache2/sites_available 和你的 sitename.conf 添加下面的代码...

WSGIScriptAlias /your/wsgi/folderpath/flaskapp.wsgi
    <Directory /your/wsgi/folderpath/>
        # set permissions as per apache2.conf file
        allow from all
        Options FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>

注意: 我就是这样实现的...我不是专业的服务器开发人员,我不确定这是否正确方法...

这是可能的。您需要为每个应用程序指定一条特定的路线。

例如,

foo.com/ -> PHP foo.com/api -> Flask 应用

A​​pache 配置示例如下所示:

<VirtualHost *:80>
  ServerName foo.com
  ProxyPreserveHost On

  ProxyPass /  http://127.0.0.1:8080/ 
  ProxyPassReverse /  http://127.0.0.1:8080/

  ProxyPass /api/  http://127.0.0.1:8081/
  ProxyPassReverse /api/  http://127.0.0.1:8081/
</VirtualHost>