2011-05-16 11 views
13

Estoy intentando cambiar de apache a nginx en mi servidor. El único problema aquí es la función getallheaders() que utilicé en mis scripts PHP que no funciona con Nginx. He intentado que el usuario contribuya con notas en el sitio php en getallheaders, pero eso no devuelve todos los encabezados de solicitud.PHP getallheaders alternativa

Por favor, dime cómo resolver este problema. Realmente me gustaría cambiar a Nginx.

+0

¿Qué encabezados te estás perdiendo? ¿Estás seguro de que el encabezado que te falta realmente es un encabezado de solicitud y no algo establecido por apache? –

+0

Me faltan encabezados personalizados enviados por el cliente, por ejemplo, mi aplicación requiere el campo ownet-id, al que no se puede acceder sin getallheaders. – adityap

+0

Está disponible en PHP 5.4 FastCGI. – CMCDragonkai

Respuesta

9

Todavía se puede usar, pero que tendrá que volver a definir/re-escribirlo como aquí

http://www.php.net/manual/en/function.getallheaders.php#84262

+0

He usado este método pero no tuve suerte. No me da todos los encabezados que quiero. Por ejemplo, mi aplicación requiere que el cliente envíe el encabezado "owner-id". Esto no se puede obtener con ninguna función excepto getallheaders(). – adityap

+0

Supongo que apache_request_headers() tampoco funcionará? – 0xAli

+0

sí ... eso tampoco funciona ... – adityap

5

se le pasará un encabezado de la solicitud de ID_propietario a PHP como $ _SERVER [' HTTP_OWNER_ID '] por nginx. Todos los encabezados de solicitud se pasan de manera similar.

+0

No, no proporciona encabezados de esa manera .... – adityap

+0

Acabo de probar llamando a un script php que contiene < ? php var_export ($ _ SERVER); ?> using curl -H 'Owner-ID: foobar' y $ _SERVER ['HTTP_OWNER_ID'] tiene un valor de foobar. ¿Tal vez has deshabilitado este comportamiento con fastcgi_pass_request_headers apagado? – kolbyjack

+0

He desinstalado nginx ... Puede proporcionar encabezados de esta manera, pero tiene muchos otros problemas como que no se puede instalar el módulo sin volver a compilar el servidor. Esto es molesto de implementar en servidores de producción. Me gustaría permanecer en apache ahora hasta que nginx madure lo suficiente. De todos modos, gracias por la ayuda – adityap

Cuestiones relacionadas