首页 > 解决方案 > 如何在 IIS 服务器中配置 Flask 应用程序?

问题描述

我开发了一个 Flask 应用程序。我受到在 IIS 服务器上运行此应用程序的限制。我访问了各种网站,了解如何配置和准备步骤。在配置的几个地方,我对路径感到困惑。我想我需要验证我所采取的每一步。

我的烧瓶应用程序名称是tourismmining,目录的内容列在下面

应用结构

我的应用程序的结构如下。

tourismmining
|-> instance
|-> mining
|-> resources
|-> entry.py
|-> installation.txt
|-> License
|-> Procfile
|-> README.rst
|-> requirements.txt

核心应用在目录mining中,结构如下

mining
|-> config
|-> db
|-> exceptions
|-> files
|-> forms
|-> logs
|-> models
|-> sink
|-> static
|-> templates
|-> __init__.py
|-> main.py
|-> utils.py

所以,一般不使用 IIS 服务器,只是通过烧瓶本地服务器,我曾经运行下面的命令

 cd tourismmining

 python -m mining.main  

下面是输出

在此处输入图像描述.

在旅游采矿中,我编写了另一个名为 entry.py 的文件,它包含


      from mining import app

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

entry.py使用以下命令运行文件

   cd tourismmining

   python entry.py 

在此处输入图像描述

我展示了两种访问我的应用程序的方法。现在,我访问了很多关于如何配置 IIS 服务器的网站,在众多网站中,我选择了两种配置 IIS 服务器的方法。我想知道我的方法是否正确。

方法#1

步骤#1:设置网站

在设置站点阶段时,我必须将应用程序移动到inetpub/wwwroot. 我有点困惑。

现在,当我需要移动整个网站时,我必须将目录touristmining 复制到C:\inetpub\wwwroot。不是吗?


步骤#2:创建一个网站

在应用程序的根目录下创建一个新网站,下面是从随机网站中挑选的快照

在此处输入图像描述

根据上面的截图,

Site name: tourism 
Physical Path: c:\inetpub\wwwroot\tourismmining   and the Click Ok.

步骤#3:添加模块映射

在此处输入图像描述

双击处理程序映射并向右,我会找到“添加模块映射”。打开添加模块映射后,下面是随机网站的屏幕截图。

在此处输入图像描述

我的应用程序的参数将按照上面的截图是

在单击确定之前,我必须打开请求限制,并取消选中调用处理程序,以防它被选中然后单击是

步骤#4:转到根服务器并单击 fastCGI 设置

该列表包含

  FullPath                   Arguments
-------------            ------------------

1.C:\Python37\python.exe   C:\Python37\Scripts\wfastcgi.py
2.C:\Python37\python.exe   c:\inetpub\wwwroot\touristmining\wfastcgi.py

现在,我双击第二个链接以启动环境变量集合编辑器,下面是从随机站点挑选的快照

在此处输入图像描述

在这里我必须设置两条路径

 1. PYTHONPATH
 2. WSGI_HANDLER

-> PYTHONPATH will be set to c:\inetpub\wwwroot\touristmining\
-> WSGI_HANDLER (Which path to set)
   
    is it mining.main.app
       or
    is it entry.app

方法 1 中是否还有其他待处理的步骤?

方法#2

步骤#1:创建一个 web.config 文件

问)我需要创建一个 web.config 文件吗?

按照上面的应用结构,我的应用的根目录是tourismmining。现在,我复制到 c:\inetpub\wwwroot。因此,该目录包含 c:\inetpub\wwwroot\tourismmining

如果上述问题是,我必须创建 web.config 文件,然后将其放在 c:\inetpub\wwwroot\tourismmining 下。这是对的吗?

然后在tourismmining下,web.config包含

 <?xml version="1.0" encoding="utf-8"?>
 <configuration>
 <system.webServer>
  <handlers>
   <remove name="Python27_via_FastCGI" />
   <remove name="Python34_via_FastCGI" />
   <add name="tourismmining"
      path="*"
      verb="*"
      modules="FastCgiModule"
      scriptProcessor="C:\Python37\python.exe|C:\inetpub\wwwroot\touristmining\wfastcgi.py"
      resourceType="Unspecified"
      requireAccess="Script" />
  </handlers>
 </system.webServer>
 <appSettings>
  <!-- Required settings -->
  <add key="WSGI_HANDLER" value="myapp.app" />
  <add key="PYTHONPATH" value="C:\inetpub\wwwroot\stealth" />
 </appSettings>
 </configuration>

在上面的xml下<appSettings>

WSGI_HANDLER 值应该是多少?

<add key="WSGI_HANDLER" value="myapp.app" />

是entry.app还是mining.main.app

对于 PYTHONPATH,我已将值设置为C:\inetpub\wwwroot\touristmining

<add key="PYTHONPATH" value="C:\inetpub\wwwroot\touristmining\" />

这个对吗?然后重新启动服务器并在浏览器中登录到 localhost:5000。还有其他待处理的步骤吗?

标签: pythoniisflask

解决方案


推荐阅读