【发布时间】:2019-06-14 02:39:07
【问题描述】:
我使用 Flask 框架编写了一个小型应用程序。我尝试使用 cgi 来托管它。根据文档,我创建了一个包含以下内容的 .cgi 文件:
#!/usr/bin/python
from wsgiref.handlers import CGIHandler
from yourapplication import app
CGIHandler().run(app)
运行文件会导致以下错误:
...
bind_to_environ 中的文件“/usr/lib/pymodules/python2.7/werkzeug/routing.py”,第 1075 行 wsgi_server_name = environ.get('HTTP_HOST', environ['SERVER_NAME'])
KeyError:“SERVER_NAME”
状态:500 内部服务器错误
内容类型:文本/纯文本
内容长度:59
在我的应用程序中我设置了:
app.config['SERVER_NAME'] = 'localhost:5000'
当我使用 Flask 开发服务器运行应用程序时,它运行良好。 正如你所知道的,我对这些东西很陌生,我一直在寻找其他有类似错误但没有运气的人。感谢所有帮助。
【问题讨论】:
-
你在一些http服务器下运行它吗?这些环境变量应该由执行 cgi 的 http 服务器设置。
-
感谢您的评论。我正在运行 apache 进行托管。我认为我不需要配置服务器只是为了在本地运行命令。完成所需的配置后,我会再试一次。
-
这个问题已经存在三年了,从未被标记为已回答。如果您正在寻找关于如何做到这一点的非常完整的讨论,请参阅我最近发给 this related stackoverflow question 的帖子。它应该适合你。当然,mkriheli 的想法是正确的。 monostop 不应该尝试运行 cgi 文件(让服务器这样做以响应传入的 HTTP 请求)。
-
确实,stackoverflow.com/a/24848407/2371522 为我工作。
-
你能修复这个错误吗?