我正在用PHP开发一个RESTful Web应用程序.我得到的是:
>在测试服务器上,Windows 7 / Apache 2.2 / PHP 5.2.9(mod_php)
>在生产服务器上,Windows Server 2003 / IIS6 / PHP 5.2.4(php5isapi.dll)
虽然测试环境没有问题,但是生产服务器无法使用pathinfo发送任何RESTful请求(例如,例如/mypath/app.php/controller/id,其中处理脚本是/mathath/app.php)给出了一个很好的空白页面,其中包含以
No input file specified.
使用firebug,我可以看到响应头是:
HTTP/1.1 404 Undescribed
Proxy-Connection: close
Connection: close
Via: 1.1 XXXXX
Date: Thu, 23 Jun 2011 14:51:18 GMT
Content-Type: text/html
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET, PHP/5.2.4
其中XXXXX是代理的名称.
我google了一下,看起来既不是SO也不是网络的其他部分都可以为这个问题提供切实可行的解决方案.任何线索?
由于生产服务器需要跟上,因此不能重新安装PHP和/或IIS.我能做的是修改IIS / PHP配置,然后重新启动IIS.
提前致谢,
保罗
解决方法:
@hakre发布了一个很好的答案,但这是解决这个问题的另一个问题,我简要报告这个问题是为了给别人节省数小时的痛苦……
我摆脱了这个问题:
>在生产服务器上编辑php.ini,注释掉doc_root = …行;
>重启IIS;
>在生产服务器上启动services.msc,重新启动“万维网发布服务”;
现在,所有页面都能正常报告PATH_INFO.
无论如何,谢谢你的答案!
如果有人关心,this page照亮了我.