前言
我的感觉是这篇博客写出来,也没人会看。因为在这个过程中我遇到了很多困难,很难找到解决办法。我解决的过程都是分解问题找相似的解决办法,但是仍然找了很久。
问题的初遇
要说这个问题是怎么想出来的,那我自然不会这么无聊而且有本事想出这个问题。其实这个问题是 米大人 早已解决的,而今天给我们展示了一下,是为了说明用IIS配置 PHP的方法。但是我没有仔细听结果弄了这么长时间,但是感觉收获很多。
我用的IIS 是IIS7
参考资料
http错误代码大全
基于windows IIS的C语言CGI WEB服务器环境搭建 这一篇解决了,请求头的问题 502.2错误
iis7运行python 我就是看了这一篇才把加%s 这个问题解决。 (bat只用一个%s就可以,但是我试了python也用一个就行了)
现在想来直接按照配置python的方法不就可以大致配置成功了吗?
实现过程
1.首先通过添加必要的windows功能,然后打开internet信息管理服务。
internet信息管理服务中的IIS部分,应该是必须有下面两个部分,然后双击 处理程序映射。
.
2. 添加脚本映射
注意:
C:\Windows\System32\cmd.exe /c %s 前面直到/c 当然是运行.bat文件的程序了,后面那个 %s 应该是接收参数,是CGI提供的(%s两端最好加引号)
3.编写符合要求的bat文件。
#这里非常重要,涉及到服务器的运行机制才能想到解决办法
在程序的开头必须至少有这句代码 (<b>Hello World!</b> 不算)
Content-type:text/html <b>Hello World!</b>
用c语言表示如下
printf("Content-type:text/html");
printf("\n\n"); //相当于还有一个空的回车 这是HTML协议的规定
printf("<b>Hello World!</b>");
用批处理(bat)表示如下 (小心转义符^)
@echo off
echo Content-type:text/html
echo.
echo ^<b^>Hello World!^</b^>
最后那个其实就是我们要用的bat文件取名为 index.bat
4.运行程序
老样子,浏览器其中输入 http://127.0.0.1/index.bat 就可以执行了。
遇到的问题及解决办法
其实遇到的问题前面已经写了,这里就贴几个图。
没有写 Content-type:text/html 头
之前见过报402.2错误后来居然正确了
忘记加 /c 参数
如果后面提示 返回的头是 “” 说明没有写 %s。
补充知识
对于IIS配置php,如果用CGI或者是FastCGI的话要记住修改 php.ini 如下部分,(可能FastCGI需要另外修改)
cgi.force_redirect=0
fastcgi.impersonate=1
fastcgi.logging=0