2011-06-23 10 views
5

Estoy desarrollando una aplicación web RESTful en PHP. Lo que tengo es:¿Cómo lograr que IIS6 reconozca las rutas pathinfo en lugar de devolver el error "404 Undescribed"?

  1. en el servidor de prueba , Windows 7/2.2 Apache/PHP 5.2.9 (mod_php)
  2. en el servidor de producción , Windows Server 2003/IIS6/PHP 5.2 0,4 (php5isapi.dll)

Mientras que el entorno de prueba tiene ningún problema, el servidor de producción no puede enviar ninguna petición REST con pathinfo (es decir, páginas como por ejemplo /mypath/app.php/controller/id, donde la secuencia de comandos de manipulación es /mypath/app.php) y da una bonita página en blanco wi th el mensaje:

No input file specified. 

Usando Firebug, puedo ver las cabeceras de respuesta son:

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 

Dónde XXXXX es el nombre del proxy.

Busqué en Google y parece que ni SO ni el resto de la web pueden dar soluciones prácticas a este problema. ¿Cualquier pista?

Dado que el servidor de producción necesita mantenerse al día, la reinstalación de PHP y/o IIS es no una opción. Lo que puedo hacer es modificar la configuración de IIS/PHP y reiniciar IIS.

Gracias de antemano,

Paolo

Respuesta

3

@hakre registró una buena respuesta, pero era otra cosa que soluciona este problema, lo que puedo informar brevemente para ahorrar horas de dolor a otros ...

que se deshizo del problema por:

  • php.ini de edición en el servidor de producción, comentando la línea doc_root=...;
  • reiniciado IIS;
  • lanzó services.msc en el servidor de producción, reinició el "Servicio de publicación World Wide Web";

ahora, todas las páginas funcionan bien informando correctamente PATH_INFO.

¡Gracias por las respuestas de todos modos!

Si a alguien le importa, this page me iluminó.

1

intentar reescribir soporte utilizando ISAPI_Rewrite (http://www.isapirewrite.com/)

+0

Como dije en mi pregunta, no puedo instalar bibliotecas adicionales en el servidor de producción. Además, el que menciona es un producto comercial, por lo que esta no es una solución viable. –

+0

, intente configurar el documento 404 y haga que todos soliciten ese archivo y el proceso en ese archivo. – hanguofeng

2

Elimina la marca de la Compruebe que existe el archivo check- caja.

Esa es una opción en el de Internet Information Services Director se pueden encontrar en los sitios web Propiedades Directorio principal de configuración para el Mapeo .php aplicación.

Edite la asignación para el sitio web en cuestión y desactive la comprobación de existencia del archivo. Entonces pathinfo debería funcionar como se esperaba.

More Info

+0

Gracias por la respuesta, traté de hacerlo, reinicié IIS, también desmarqué "Extensiones ISAPI de caché", reinicié nuevamente, pero nada cambió. Ni siquiera puedo obtener una página simple, digamos /phpinfo.php/pathinfo_test para ser reconocida. Mismo error: 404 encabezado no descrito. –

Cuestiones relacionadas