Search code examples
phpiis-6restful-urlpathinfo

How to get IIS6 to recognize pathinfo routes instead of returning "404 Undescribed" error?


I am developing a RESTful web application in PHP. What I have got is:

  1. on the test server, Windows 7 / Apache 2.2 / PHP 5.2.9 (mod_php)
  2. on the production server, Windows Server 2003 / IIS6 / PHP 5.2.4 (php5isapi.dll)

While the test environment has got no problem, the production server fails to send any RESTful request with pathinfo (i.e., pages like e.g. /mypath/app.php/controller/id, where the handling script is /mypath/app.php) and gives a nice blank page with the message:

No input file specified. 

Using firebug, I can see the response headers are:

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

Where XXXXX is the name of the proxy.

I googled around and it seems like neither SO nor the rest of the web can give practical solutions to this problem. Any clue?

Since the production server needs to keep up, reinstalling PHP and/or IIS is not an option. What I can do is modify IIS/PHP configuration, and restart IIS.

Thanks in advance,

Paolo


Solution

  • @hakre posted a good answer, but it was another thing that solved this issue, which I report briefly to save hours of pain to others...

    I got rid of the problem by:

    • editing php.ini on the production server, commenting out the doc_root=... line;
    • restarted IIS;
    • launched services.msc on the production server, restarted the "World Wide Web Publishing Service";

    now, all pages work just fine reporting PATH_INFO correctly.

    Thanks for the answers anyway!

    If anyone cares, this page illuminated me.