当前位置: 首页>后端>正文

windows配置 python项目到iis服务器 python iis部署

对于用 Windows2003 Server 服务器,想在 IIS 下尝鲜 Python 的朋友,可以遵照以下步骤配置(以最新的Python3.0为例):

    不像 PHP,可以有 ISAPI 和 CGI 两种配置方法,Python 目前只能配置为以 CGI 方式与 IIS 进行集成。

    1.打开 IIS6 配置界面
    2.在“Web 服务扩展”点右键,选择“添加一个新的Web服务扩展”。在打开的对话框中填入扩展名(可以任意),然后点击要求的文件栏的“添加”按钮,找到你Python的安装目录,选中python.exe,然后按下面格式填写:
    C:\Python30\python.exe -u %s %s(我的Python装在了C:\Python30),不要遗漏后面的 %s %s, 并注意空格。-u是防止return返回的新行有时会出现一些问题。%s代表字符串,第一个是代码python程序名称(如index.py),后面一个则是指可能带的参数。
    新添加的 web 扩展默认是“允许”的。
    注意:本步也可以用打开“所有未知CGI扩展”的“允许”开关来实现,但因为开放了所有“未知CGI扩展”,所以是很不安全的。
    3.点击“确定”完成这个步骤。

    4.配置python页面的扩展名映射。
    这一步的意思是说当用户请求某个特定扩展名的网页时,IIS用什么去解释这个网页
    5.点击“网站”,找到你要执行Python页面的那个网站,点右键,点“属性”。
    6.在打开的对话框中选中“主目录”,点击“配置”按钮。
    7.在打开的“应用程序配置”对话框,“应用程序扩展”栏目下,点击“添加”按钮。
    8.弹出“添加/编辑应用程序扩展名映射”对话框。
    9.像上述一样找到你的python.exe文件,然后按照以下格式填到“可执行文件”文本框中:
        “C:\Python30\python.exe” %s %s
      注意可执行文件路径要加引号。
    10.在“扩展名”栏填入想要使用的扩展名,一般是 .py。
    11.在“动作”里填入想要允许用户执行的操作,比如GET等,一般可以选“全部动作”。
    12.点击“确定”完成本步。

    测试:
    接下来就试验下吧。编写一个index.py文件:

print (’Status: 200 OK’)
     print (’Content-Type: text/html’)
     print (”)
     print (’<html><head><title>Hello Python3.0</title></head>’)
     print (’<body>’)
     print (’<h1>Hello, Python3.0!</h1>’)
     print (’<H1>This is a Topic</H1><br>’)
     print (’<p>this is a comment<br>’)
     print (’See this is just like most other HTML’)
     print (’</body>’)
     print (’</html>’)

    在浏览器里输入网址,网址根据你的Web环境具体确定,例如 http://localhost/index.py,打开该页面,应该显示:

Hello, Python3.0!
     This is a Topic
     this is a comment
     See this is just like most other HTML

    可能存在的问题:

    1.找不到网页
    这个错误的发生是因为遗漏了配置CGI扩展的步骤。
    2.CGI Error
    出现错误:The specified CGI application misbehaved by not returning a complete set of HTTP headers.
    这个错误的原因,最可能的是,忘记了每个Python网页在开始输出 Html 代码前,都需要用 print(”) 输出一个空行。
    另一个原因是 Python 脚本存在语法错误,需仔细检查。
    注意,Python 3.0 里已经不允许
        print ’string…’
    这样的语句了,因为 print 现在已经是一个函数,必须写成
        print (’string…’)
    3.python.exe 文件必须给 Internet 用户(用户名形如 IUSR_….)加上读取和执行的权限,不然会在浏览器端弹出个对话框,要求输入 Windows 的账户和密码。

http://blog.51cto.com/itwatch/286500


https://www.xamrdz.com/backend/33q1942299.html

相关文章: