当前位置: 首页 > 知识库问答 >
问题:

在linux中使用apache和mod_wsgi配置Python烧瓶应用程序

罗韬
2023-03-14

我在应用程序帐户下有一个linux apache 2.4.12和mod_wsgi4.5.2(mod_wsgi.so安装到apache中)。Apache在应用程序帐户下的端口8050下运行。按照这个链接测试mod_wsgi工作:http://modwsgi.readthedocs.org/en/develop/user-guides/quick-configuration-guide.html#wsgi-application-script-file和我输入了我的网址:http://mytest.mydomain.com:8050/myapp.它显示“Hello World”,所以它指示我的mod_wsgi安装工作。接下来我试着看看我是否可以让烧瓶应用程序工作。

我创建了简单的hello。/home/myuserId/wsgi下的py文件:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
   return 'Hello World!'

if __name__ == '__main__':
   app.run()

然后,我创建了一个简单的wsgi文件,如下所示:

import sys, os
sys.path.insert(0, "/home/myuserId/wsgi")

from hello import app as application

然后我遵循了其他建议,包括http://flask.pocoo.org/docs/0.10/deploying/mod_wsgi/配置我的apache http。具有virtualhost的conf文件为:

<VirtualHost *:8050>

  # ServerName www.example.com

  WSGIDaemonProcess hello user=appuser group=appuser threads=5
  WSGIScriptAlias / /home/myuserId/wsgi/hello.wsgi

 <Directory /home/myuserId/wsgi>
    WSGIProcessGroup hello
    WSGIApplicationGroup %{GLOBAL}
    Require all granted
    Options +ExecCGI
    AddHandler wsgi-script .wsgi
 </Directory>
</VirtualHost>

我保存了httpd。conf文件并重新启动apache w/o错误。当我在chrome中输入URL时:http://mytest.mydomain.com:8050/hello或http://mytest.mydomain.com:8050/hello_world,我得到了这个错误:

**Not Found**

The requested URL /hello was not found on this server.
Apache/2.4.12 (Unix) mod_wsgi/4.5.2 Python/2.7.9 Server at mytest.mydomain.com port 8050. 

我的问题是:

  1. 我的配置是否错误
  2. 上面的hello flask应用程序要使用的正确URL是什么
  3. 尝试了WSGIScriptAlias/hello/home/myuserId/wsgi/hello。wsgi安装hello应用程序,但也没有找到
  4. 对于flask应用程序,为什么配置文件必须在VirtualHost中配置应用程序

共有1个答案

芮瑾瑜
2023-03-14

您没有使用主机名指定ServerName指令。因此,它将与该VirtualHost不匹配,而是返回到Apache配置文件中找到的第一个VirtualHost。

 类似资料:
  • 我试图在python中构建一个可以从XAMPP的Apache运行的应用程序,因此我安装了flask(),并按照以下说明进行mod_wsgi安装http://modwsgi.readthedocs.io/en/develop/user-guides/quick-installation-guide.html.我使用XAMPP的Apache,版本2.4.29和anaconda的python 3.6.4

  • 我有一个基本的“hello world”烧瓶应用程序正在运行。 我在Ubuntu 14.04上,使用Apache 2.4。我安装了mod_wsgi。 我创建了一个~/web/piFlask/venv/来保存一个安装了flask的virtualenv创建的Python2。 但是,我希望我的flaskapp导入我编写的Python3. x模块。 我需要做什么才能做到这一点? 我试着创建一个

  • 在CentOS 6.4中,我在/var/www/html/venv文件夹中创建了python虚拟环境。然后在激活虚拟环境后,我为我的flask应用程序安装了所有必要的python库。我检查了一下,Flask库位于/var/www/html/venv/lib/python2.7/site-packages文件夹中。我已经安装并加载了mod_wsgi。现在,在我的flask应用程序中(位于/var/w

  • 任何人请建议如何摆脱已经运行的应用程序。我试过很多关于杀戮过程的东西,但没有一个是真的奏效的。

  • 我已经用flask在python上制作了一个restapi(端口:5000),我正在从一个网站(端口:80)发出get和post请求。我收到了cors错误,所以我尝试在RESTAPI中为站点创建一个响应头。但是我得到了导入错误: 我已经下载了烧瓶cors模块并升级它,并确保它是在正确的路径,但它仍然不工作。 API代码:

  • 我正在尝试使用mod_wsgi在Ubuntu 16.04上通过apache安装flask应用程序。问题是wsgi脚本无法导入任何python模块。 我已经验证了wsgi脚本是可执行的,并用python独立运行了它。我还验证了我的flask应用程序可以自己运行,没有错误。我能够在我运行的任何其他python程序中导入所有模块。我还安装了带有pip和源代码的烧瓶。似乎什么都没用。 这是我的错误日志: