如何在 Windows Server 上托管 Python 3.7 烧瓶应用程序?
Posted
技术标签:
【中文标题】如何在 Windows Server 上托管 Python 3.7 烧瓶应用程序?【英文标题】:How to host Python 3.7 flask application on Windows Server? 【发布时间】:2020-02-04 06:31:14 【问题描述】:由于 wfastcgi 模块与 Python 3.7 不兼容,在 Windows 服务器上托管 python 烧瓶应用程序的最佳方式是什么?
【问题讨论】:
如果您无法自行升级 wfastcgi,请关注***.com/tags/wfastcgi/info 最新版本的 wfastcgi 仅支持 Python 3.6。我正在运行 Python 3.7 并收到以下错误:factcgi 进程意外退出。 @Ishan 你的问题解决了吗?如果您的问题得到解决,那么我请求您将有用的建议标记为答案。这将帮助面临同样问题的其他人。如果您的问题仍然存在,请尝试参考社区成员提供的解决方案。如果您还有其他问题,请告诉我们。我们将尝试提供进一步的建议来解决该问题。感谢您的理解。 【参考方案1】:你需要在你的服务器上安装 python、wfastcgi 和 flask。
您可以从以下链接下载python:
https://www.python.org/downloads/
安装python后下载wfastcgi:
pip install wfastcgi
以管理员身份运行命令提示符并运行此命令。
wfastcgi-enable
运行此命令以启用 wfastcgi。
以下是我的烧瓶示例:
app.py:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello from FastCGI via IIS!"
if __name__ == "__main__":
app.run()
创建应用程序以运行它后,使用以下命令:
python app.py
现在启用 iis 的 cgi 功能:
现在打开 iis。 右键单击服务器名称并选择添加站点。 输入站点名称物理路径和站点绑定。 添加站点后,选择站点名称并从中间窗格中选择处理程序映射功能。 点击“添加模块映射” 添加以下值:可执行路径值:
C:\Python37-32\python.exe|C:\Python37-32\Lib\site-packages\wfastcgi.py
单击“请求限制”。确保“仅在以下情况下调用处理程序 请求被映射到:”复选框未选中: 在此处单击“是”: 现在返回并再次选择服务器名称并从中间窗格中选择快速 CGI 设置。 双击它,然后单击环境变量的“...” 集合以启动 EnvironmentVariables 集合编辑器: 设置 PYTHONPATH 变量: 还有 WSGI_HANDLER(我的 Flask 应用程序名为 app.py,因此值为 app.app - 如果你的名字是 site.py,它会是 site.app 或类似的): 单击“确定”并浏览到您的站点:注意:不要忘记将 iusr 和 iis_iusrs 用户权限分配给烧瓶站点文件夹和 python 文件夹。
【讨论】:
我现在收到相同代码的以下错误。我检查了端口 5000 是否打开,并已为 iusr 和 iis_usrs 提供了必要的权限:第 466 行,在 server_bind self.socket.bind(self.server_address) OSError: [WinError 10013] 试图以某种方式访问套接字被其访问权限禁止 StdOut:* Serving Flask app “app”(延迟加载) * 环境:生产 警告:这是一个开发服务器。不要在生产部署中使用它。请改用生产 WSGI 服务器。 * 调试模式:关闭 StdErr: 发布代码时存在一些问题。请检查编辑后的帖子。这是实际代码:from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello from FastCGI via IIS!" if __name__ == "__main__": app.run()
确保使用以下命令安装flask:pip install Flask
代码仍然没有运行,错误如下: OSError: [WinError 10013] 试图以访问权限 StdOut 禁止的方式访问套接字:
@Ishan 您是否将 iis_iusrs 和 iusr 权限分配给了 python 和站点文件夹?在 iis 中托管之前或在 iis 中托管之后,您何时收到此错误?或尝试设置不同的端口号。有关更多详细信息,请参阅此link以上是关于如何在 Windows Server 上托管 Python 3.7 烧瓶应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows Server 2003 上托管 WCF Web 服务
如何使用 IIS7 服务器在 amazon ec2 windows 实例上托管域名
我可以在 ms windows server 2008 上托管在 ms visual studio 2003 中开发的应用程序吗?
如何在运行 Tableau Server 的 VM 上托管网站?
如何使用 MongoDB 在 Heroku 上托管我自己的 Parse Server? [关闭]
Flask 服务器在 Macbook 上托管时可见,但在 Windows 桌面上托管时不可见? (尝试了一切?)[重复]