Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有可能在apache上运行FlaskAPI,并且已经在同一个域上运行PHP站点吗?_Python_Apache_Flask_Mod Wsgi_Flask Restful - Fatal编程技术网

Python 有可能在apache上运行FlaskAPI,并且已经在同一个域上运行PHP站点吗?

Python 有可能在apache上运行FlaskAPI,并且已经在同一个域上运行PHP站点吗?,python,apache,flask,mod-wsgi,flask-restful,Python,Apache,Flask,Mod Wsgi,Flask Restful,是否可以在apache+ubuntu服务器上运行flask rest api,而PHP网站已经在该域上运行 简而言之:若我浏览url,那个么正常的php网站应该加载。若我调用,那个么FlaskAPI应该给出结果 更新=>回答 最后我找到了一个解决方案,在这里发布,如果它可以帮助某人。。。 (Ubuntu服务器) -->使用root(假设已经安装了Python和Pip) sudo apt get安装libapache2-mod-wsgi-py3 python3 dev sudo-apt-get-i

是否可以在apache+ubuntu服务器上运行flask rest api,而PHP网站已经在该域上运行

简而言之:若我浏览url,那个么正常的php网站应该加载。若我调用,那个么FlaskAPI应该给出结果

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

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

  • sudo apt get安装libapache2-mod-wsgi-py3 python3 dev
  • sudo-apt-get-install-python3-pip
  • pip3安装virtualenv
  • -->与域用户 导航到要在其中创建虚拟环境的文件夹。。。然后键入下面的命令(您可以根据需要更改虚拟环境名称)

  • python3-m virtualenv myenv
    flaskapp.wsgi
    在项目文件夹中或您想要的任何位置。。。然后是下面的代码
  • 最后,使用可用的
    etc/apache2/sites\u
    和您的
    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>
    
    WSGIScriptAlias/your/wsgi/folderpath/flaskapp.wsgi
    #根据apache2.conf文件设置权限
    通融
    选项如下符号链接
    不允许超限
    要求所有授权
    

    注意:这就是我成功的方法。。。我不是一个专业的服务器开发人员,我不确定这是否是一个正确的方法…

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

    比如说,

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

    apache配置示例如下所示:

    
    ServerName foo.com
    代理主机
    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/
    
    可能吧。为什么不呢?你试过了吗?发生了什么事?我知道通过安装和配置mod_wsgi和配置apache2/sites available/website.conf分别托管flask应用程序,但我不知道如何更新php已在同一域中使用的website.conf。感谢您的回答。。。烧瓶端有什么需要做的吗?你只需要提供烧瓶应用程序。“烧瓶运行”如果您使用新烧瓶,则需要设置env变量以指向烧瓶应用程序
    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>