我在windows xp IIS5.1下轻易成功安装php5.26 但是一到了windows 2003 II6下就无法安装成功,按理说IIS6是增加了安全性,需要在web服务扩展那里也设置允许PHP运行,而IIS5则不需要,除了这个差别之外,还有什么差别吗?我查阅了网上很多的资料说明,包括官方网站的详细的安装说明,都大同小异,就是搞不定,国外网站上就有很多人问这个和我一模一样的问题,但是我查不到具体解决方案.我的问题是只要访问php文件,浏览器就提示404错误说找不到文件,其他文件则可以访问.php在IIS中也是呈现绿色显示成功加载. 我怀疑是IIS的问题,但是不知道究竟是什么问题?请高人指点.
我所做的操作包括:
1) IIS设置: 设置ISAPI筛选器/设置主目录中的.php映射/执行权限为纯脚本/WEB服务扩展中对PHP的允许/默认首页/
2) 环境变量设置: 添加了path和PHPRC
3) php.ini的设置,设置了session,upload,extension 等的目录位置,和log文件,里面那些扩展我暂时都没有开启,我想先安装好基本的,再去开启. 根据官方帮助文件,php5并不需要把c:\php\php.ini文件复制到c:\windows\目录,因为我设置了环境变量并重新启动服务器了.但是我由于一直装不上去也复制了一份过去.
4) 设置了允许IIS用户访问PHP的文件夹和php程序的文件夹.后来由于怀疑php5有bug有重新试了php-4.4.9 仍然是同样的问题,非常的头疼,请问什么原因啊?

解决方案 »

  1.   

    3) php.ini的设置,设置了session,upload,extension 等的目录位置,和log文件,里面那些扩展我暂时都没有开启,我想先安装好基本的,再去开启. 根据官方帮助文件,php5并不需要把c:\php\php.ini文件复制到c:\windows\目录,因为我设置了环境变量并重新启动服务器了.但是我由于一直装不上去也复制了一份过去. 
    应该要考进去的!
    你试试...
      

  2.   

    我安装了一整天了,当然也把c:\php\php.ini复制到c:\windows\目录试过了,并且某些人说要把php.ini,php.exe,php-win.exe这三个文件也复制到c:\windows\我也照做了,把C:\php\ext\php_gd2.dll 复制到 c:\windows\system32\我也做了,因为我只允许了这个扩展,别的dll文件我不想复制. 提示的错误始终如下HTTP 错误 404 - 文件或目录未找到。
    Internet 信息服务 (IIS)我觉得这和IIS的设置有关,前两天突然发现exe文件也是不能访问,出现同样的错误,我原来在网站属性--主目录--执行权限中设置的是"脚本和可执行文件",后来改为了"纯脚本"就可以了,而这个php我是没搞懂是怎么回事,不知道应该怎样设置,无论怎样设置我都试了,都不行.
      

  3.   

    能否执行.HTML你最好GOOGLE(HTTP 错误 404 )一下你的报错!
      

  4.   

    当然能执行啦,其他类型的文件当然都能执行,例如gif,txt,htm等,就是一访问php文件就出现错误,如果设置网站属性--主目录--执行权限中设置的是"脚本和可执行文件",那么访问.php文件出错,其他类型文件则正常,访问.php文件出现的错误信息如下:
    HTTP 错误 404 - 文件或目录未找到。
    Internet 信息服务 (IIS)

    如果设置网站属性--主目录--执行权限中设置的是"脚本和可执行文件",那么访问.php文件和.exe文件两种类型都出错,其他类型文件正常,访问.php文件的错误信息如下:
    系统找不到指定的路径。访问.exe 文件的错误信息如下:
    HTTP 错误 404 - 文件或目录未找到。
    Internet 信息服务 (IIS)
      

  5.   

    不好意思刚刚楼上的回复写错了,应该是当然能执行啦,其他类型的文件当然都能执行,例如gif,txt,htm等,就是一访问php文件就出现错误,如果设置网站属性--主目录--执行权限中设置的是"纯脚本",那么访问.php文件出错,其他类型文件则正常,访问.php文件出现的错误信息如下: 
    HTTP 错误 404 - 文件或目录未找到。 
    Internet 信息服务 (IIS) 

    如果设置网站属性--主目录--执行权限中设置的是"脚本和可执行文件",那么访问.php文件和.exe文件两种类型都出错,其他类型文件正常,访问.php文件的错误信息如下: 
    系统找不到指定的路径。 访问.exe 文件的错误信息如下: 
    HTTP 错误 404 - 文件或目录未找到。 
    Internet 信息服务 (IIS) 
      

  6.   

    个人感觉和IIS的设置有关,应该不是php的设置问题了.根据一些提示信息,我查阅了微软关于ISAPI的说明,觉得IIS6和IIS5差别很大,但是看不太明白 文章网址是 http://support.microsoft.com/kb/311852/zh-cn 另外补充一下,我看网上关于php安装的,都讲的不太完整,例如IIS站点中应该要 "允许脚本资源访问",这在创建站点的时候就要设置,这一点基本没人提及,但是对于不懂PHP的人来说,不说明这一点,是无论如何也安装不起来的.现在就是很多不懂PHP的人需要去安装一些网上的论坛和网店程序,才来安装这个的.已经两天了,我的php还是没有安装起来,头疼啊.
      

  7.   

    LZ不会那么衰吧?我在Vista下IIS7里安装PHP也都是很快就好了。看了你的描述,方方面面你应该考虑的不少了。我也说不出别的什么,随便说说:1. 你的PHP代码给一点看看?哪怕是<?php 
    phpinfo();
    ?>
    也不能正常运行吗?
    2. 你的Windows2003有没有防火墙?有没有允许80端口?
    3. 你怎么访问你的html文件和PHP文件的?
    4. 你确定你的IIS站点配好了吗?站点的目录结构和你硬盘目录结构是如何匹配的?
    ……
    暂时先想到了这么多……等你的回复……
      

  8.   

    IIS站点当然配置好了,否则怎么能访问其他文件呢,现在只是不能访问php文件,其他文件都可以访问.并且这个服务器是运行很多网站的,运行好几年了.
    我访问的程序都是最简单最基本的确php文件,绝对没问题.例如hello world , phpinfo,手工在上面创建了这两个文件.
    防火墙那应该是没有关系的,如果80端口被限制了,那么我应该什么都访问不到,而不仅仅是php文件不能访问,再说了,如果是防火墙也不是这样的提示了.
      

  9.   

    由于手工安装总是不成功,我又尝试用install的方式安装php,安装时选择了isapi的模式,发现自动安装就是多了个修改注册表,但是少了哪个设置ISAPI筛选器的.我又手工添加上去.  另外网站我重新创建了一个,并且设置了IIS用户的访问权限. 结果信息差不多,文字略有不同,如下

       最可能的原因是:
    在地址中可能存在键入错误。 
    当您点击某个链接时,它可能已过期。 
     
       您可以尝试以下操作: 
         重新键入地址。  
     
         返回到上一页。  
     
         转至 主站点 并查找您想要的信息。  
     
         更多信息  此错误(HTTP 404 未找到)意味着 Internet Explorer 可以连接到该网站,但是找不到您想要的页面。该网页可能是暂时不可用。或者,该网站可能已更改或已删除该网页。有关 HTTP 错误的详细信息,请参阅帮助。

     
      

  10.   

    由于之前说的比较零散,现在把问题重新整理完整说一次.我在windows xp IIS5.1下轻易成功安装php5.26 但是一到了windows 2003 II6下就无法安装成功,各种htm,gif文件都能访问,就是php文件访问不了,提示的错误信息如下:  最可能的原因是: 
    在地址中可能存在键入错误。
    当您点击某个链接时,它可能已过期。   您可以尝试以下操作: 
        重新键入地址。      返回到上一页。      转至 主站点 并查找您想要的信息。      更多信息  此错误(HTTP 404 未找到)意味着 Internet Explorer 可以连接到该网站,但是找不到您想要的页面。该网页可能是暂时不可用。或者,该网站可能已更改或已删除该网页。 有关 HTTP 错误的详细信息,请参阅帮助。 

    按理说IIS6是增加了安全性,需要在web服务扩展那里也设置允许PHP运行,而IIS5则不需要,除了这个差别之外,还有什么差别吗?我查阅了网上很多的资料说明,包括官方网站的详细的安装说明,都大同小异,就是搞不定.我所做的操作包括: 
    1) IIS设置: 设置ISAPI筛选器/设置主目录中的.php映射/执行权限为纯脚本/WEB服务扩展中对PHP的允许(这步在IIS5中不需要做)/默认首页/  除了以上通常的设置之外,我还IIS---本地计算机---MIME类型中添加了.php类型,这个是在网上都没有提到,但是我通过查询微软的404错误意识到这里也应该设置,否则是不会支持php文件的. 我确认设置完之后重新启动IIS显示php的ISAPI筛选器显示绿色并提示加载成功.
    2) 环境变量设置: 添加了path和PHPRC 并且重新启动了服务器.
    3) php.ini的设置,设置了session,upload,extension,doc_root 等的参数,并且检查创建了对应的目录,和log文件,里面那些扩展我暂时都没有开启,我想先安装好基本的,再去开启. 根据官方帮助文件,php5并不需要把c:\php\php.ini和其他dll文件复制到windows目录,即使如此,我还是复制了一个php.ini到c:\windows
    4) 设置了允许IIS用户(IIS_WPG 和Internet 来宾帐户)访问c:\PHP的文件夹和php程序的文件夹,其中session目录设置了写权限,后来由于怀疑php5有bug又重新试了php-4.4.9 仍然是同样的问题,非常的头疼,请问什么原因啊? 根据种种迹象,我判断应该是IIS的设置问题,但是就是不知道究竟什么原因,网上有很多人也问到同样的问题,但是看起来都没有确切的答案.我的测试文件是两个php文件,和几个htm文件和gif文件,php文件代码分别是<?PHP
      echo "hello, world\n";
    ?>
     <?
    phpinfo();
    ?>
    经过以上方式的反复折腾了一天之后,我决定不用手工配置的方式,下载了一个php的install文件,结果发现这个install就是多了一个写注册表,还少了一个添加ISAPI筛选器,还得手工去加.现在已经是第二天了,仍然搞不定,有点绝望,现在寄希望于用CGI方式而不是ISAPI方式再装一个晚上试一下,但是我想并没有把握,因为这个IIS的设置问题,可能仍然会发生同样的情况,因为我认为php的设置不太可能有问题.我也不会考虑apache + php的方案,因为我这个服务器上已经有很多的IIS的网站了,不能再另外装apache了,只有一个80端口可用.我还有另外一个疑问, doc_root 这个究竟应该怎样处理? 官方文档看不明白是什么意思? http://www.php.net/manual/en/ini.core.php#ini.doc-root 而从另外一个网站上看(http://john.parnefjord.se/node/42),则说如果是虚拟主机就不要设置这个,我这个windows 2003确实是虚拟主机,这也是是和XP那台机器不同之处,我在XP那台机器上能够安装成功,在这里却安装不成功,会不会和这个有关呢?  但是我无论是设置doc_root 还是把它注释掉,都没有任何效果.附: 网上也有问和我类似问题的,列举几个如下:
    http://www.discuz.net/viewthread.php?tid=264364 
    http://blog.miawork.com/?p=434
      

  11.   


    我看了一下,能不能把你的PHP文件修改一下:<?php
    phpinfo();
    ?> 
    5.2.6缺省是不支持短php标记的。另外,根据我的经验,doc_root不需要管……另外,PHP.INI中有这么一段:
    [code=INIFile]
    ; cgi.force_redirect is necessary to provide security running PHP as a CGI under
    ; most web servers.  Left undefined, PHP turns this on by default.  You can
    ; turn it off here AT YOUR OWN RISK
    ; **You CAN safely turn this off for IIS, in fact, you MUST.**
    ; cgi.force_redirect = 1[/code]
      

  12.   

    楼上的兄弟,我哪个php代码是没有问题的,我是从已经安装好的windows xp copy过去的,并且中间有反复copy回来测试过的.而且,如果是php代码的问题,会在我设置的哪个log文件中有报错的,如果是代码问题,哪个网页也不会提示404错误的.现在的问题是,php是加载了,但是没有执行,可能和权限有关,但是不知道原因究竟在哪里.
    至于哪个 INIFile code 我也看了,应该是和CGI模式有关,但是我安装的是ISAPI模式,还没有试哪个CGI模式的安装方法,应该也没有什么关系的.
      

  13.   

    http://support.microsoft.com/kb/248033/zh-tw
    去看一下
      

  14.   

    1.建议重新DOWN个IIS6,装上试试
    2.出现HTTP 404 未找到原因很多
    (最好自己在GOOGLE BAIDU 上面多搜搜)和你出现同样问题的很多,自己好好看下,然后看上面的解决方案自己再试试...
      

  15.   


    这个我之前已经看过了,并且正是因为看了这里才设置了哪个mime类型的,这我在之前也提到了.
      

  16.   

    今天又折腾了一早上,更换成fastcgi模式,不用哪个isapi模式了,还是搞不定,同样的错误,非常的绝望,我这台服务器已经运行几年了,不能随意重新安装,东西太多,而且服务器又在电信局. 我估计apache + php应该能搞定,但是我现在的80端口已经被IIS占用,无法在安装apache了,使用其他端口显然不现实,不可能作为网站应用的.我这台电脑还安装了Resin,听说Resin也支持php了,但是上周已经试过了,仍然搞不定,虽然能运行PHP,但是居然不能支持 Discuz! 我正是要安装这个东西,和另外一个php的商城.有没有人肯通过QQ远程协助直接帮我设置一下啊?我的QQ 477803038 十分感谢.
      

  17.   

    看看php所在文件夹的操作权限,又没放足权限。实在还是不行的话用apache吧
      

  18.   

    谢谢各位,终于搞定了.TNND! 原来是服务器上RESIN的关系,我哪个Resin和IIS做了绑定,以共用一个端口,Resin也是以ISAPI的方式装上去的. 我查了一下资料,Resin也开始支持PHP了,这就造成了冲突.我把IIS中全局的resin isapi筛选器取消,改为只针对具体的网站,吸取了教训,这个PHP在设置的时候我也只针对具体的网站,而不做全局设置,以免对其他造成影响.   当然,把筛选器的顺序调整一下,让PHP的筛选器优先也可以解决问题,不过我还是把全局的resin isapi取消掉了.
      

  19.   

      我的开始也是不知道问题出在哪里,根据10楼的提示已经搞定,谢谢!就是剩下的两步,先是修改注册表,再在WEB服务扩展中对PHP的允许,有需要的朋友发个邮件到
      

  20.   

    我也是忙了半天终于解决这个问题了,不知道楼主是不是和我一样的问题,在web服务扩展里面把PHP设置成允许