Problemas con Nginx y Laravel en 1.10

Hoy ha sido un día cansado tratando de depurar una aplicación basada en Laravel 5 y que migre de un servidor de desarrollo a uno de producción lo cual debería ser transparente y sin complicaciones, pero no lo fue.

La solución como todo en estos problemas es muy sencilla y es una simple cadena en la configuración de nginx del sitio en cuestión.

El problema fue que la aplicación funcionaba en producción al parecer sin problemas, pero no detectaba $_GET, solo podías hacer $_POST sin problema y las rutas funcionaban de manera correcta, pero todo aquello en /<controller>/<action>?foo=bar no funcionaba, es decir, como si lo de “?foo=bar” no estuviera ahí.

Código igual, mismo motor de BD, misma versión de PHP 5.5, misma configuración en Nginx, misma configuración de pool en PHP-FPM. Pero no funcionaba.

Si funcionaba todo en un nginx 1.4.6 pero en un nginx 1.10 no.

Buscando, encontré que la solución era cambiar en el archivo de configuración del sitio en Nginx:

try_files $uri $uri/ /index.php$args;

a

try_files $uri $uri/ /index.php?$args;

Finalmente un reinicio del servicio logro que la aplicación detectara el $_GET.

Al parecer en nginx 1.10, $args no contiene el carácter “?”, por lo que hay que agregarselo, mientras que en 1.4.6 éste pasa sin problemas.

 

Leave a Reply

Your email address will not be published. Required fields are marked *