【问题标题】:Is it possible to have flask api running on apache with already running PHP site for same domain? [closed]是否可以在 apache 上运行烧瓶 api,并且已经为同一域运行 PHP 站点? [关闭]
【发布时间】:2019-09-25 14:28:27
【问题描述】:

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

简而言之:如果我浏览 url www.example.com 则应该加载正常的 php 网站。如果我打电话给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. 用推荐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>

注意: 这就是我让它工作的方式......我不是专业的服务器开发人员,我不确定这是否是正确的方法......

【问题讨论】:

  • 可能。为什么不?你试过了吗?发生了什么?
  • 我知道通过安装和配置 mod_wsgi 和配置 apache2/sites-available/website.conf 来单独托管烧瓶应用程序,但我不知道如何更新 php 已用于同一域的 website.conf。

标签: python apache flask mod-wsgi flask-restful


【解决方案1】:

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

例如,

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

一个示例 apache 配置将是这样的:

<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>

【讨论】:

  • 感谢您的回答...在 Flask 方面有什么需要做的吗...?
  • 您只需要为烧瓶应用提供服务。如果您使用新的烧瓶,则“烧瓶运行”,您需要将环境变量设置为指向烧瓶应用程序
猜你喜欢
  • 2020-03-14
  • 1970-01-01
  • 2016-12-18
  • 2021-08-15
  • 2011-03-05
  • 1970-01-01
  • 2014-04-03
  • 2017-04-19
  • 2012-12-20
相关资源
最近更新 更多