如何在IIS上使用CGI部署Python应用程序?

时间:2019-11-24 17:04:02

标签: python iis cgi

我是python的新手,我尝试在IIS上部署一个简单的hello python应用程序,我遵循了此URL

https://support.sisense.com/hc/en-us/community/posts/115007362727-Installing-Python-on-IIS

Hello.py

print "Content-type:text/html\r\n\r\n"
print '<html>'
print '<head>'
print '<title>Hello Word - First CGI Program</title>'
print '</head>'
print '<body>'
print '<h2>Hello Word! This is my first CGI program</h2>'
print '</body>'
print '</html>'

但是,错误如下所述

HTTP Error 401.3 - Unauthorized
You do not have permission to view this directory or page because of the access control list (ACL) configuration or encryption settings for this resource on the Web server

我认为该问题可能与权限无关,因为我能够浏览hello.html

我尝试了SO中提供的一些解决方案来解决该问题,但是没有任何效果。任何帮助都将受到高度赞赏

2 个答案:

答案 0 :(得分:0)

请参阅此链接https://www.storehubs.com/Blog/deploy-python-flask-application-iis/。安装python3(32位)并使用virtualenv进行部署。

答案 1 :(得分:0)

要使用iis配置python,您可以尝试执行以下步骤:

1)下载最新的python版本,因为iis不适用于python的旧版本。

https://www.python.org/downloads/windows/

2)下面是hello.py文件:

print("Content-type:text/html\r\n\r\n")
print('<html>')
print('<head>')
print('<title>Hello Word - First CGI Program</title>')
print('</head>')
print('<body>')
print('<h2>Hello Word! This is my first CGI program</h2>')
print('</body>')
print('</html>')

3)启用iis CGI功能。

enter image description here

4)打开iis管理器。右键单击服务器名称,然后选择添加站点。

enter image description here

5)添加站点绑定详细信息文件夹路径(python文件夹)

enter image description here

6)选择一个站点,然后单击中间窗格中的处理程序映射。

enter image description here

7)从操作窗格中单击添加脚本映射。

enter image description here

8)添加脚本映射值。

*。py,并将其映射到c:\ Python37-32 \ python.exe%s%s。

enter image description here

enter image description here

确保已启用目录浏览。

enter image description here

web.config文件:

    <?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <add name="python" path="*.py" verb="*" modules="CgiModule" scriptProcessor="C:\Python37-32\python.exe %s %s" resourceType="File" />
        </handlers>
        <directoryBrowse enabled="true" />
    </system.webServer>
</configuration>

设置iis_iusrs和iusr对站点文件夹(c:\ pythonapp)和python文件夹(C:\ Python37-32)的权限。 确保启用了匿名身份验证。并将应用程序池设置为应用程序池标识。 完成所有更改后,重新启动iis服务器并浏览站点。

enter image description here