2010-03-23 14 views
10

uso el siguiente configuración para nginx: http://gist.github.com/340956

Sin embargo, esta configuración provoca un error de No input file specified con PHP. La única manera que he sido capaz de resolverlo es mediante la alteración de esta línea:

fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;

Nota del "/" entre $document_root y $fastcgi_script_name. Me informaron que esta es la configuración incorrecta, pero nadie ha podido decirme exactamente por qué mi configuración requiere esta barra adicional.

¿Cómo puedo deshacerme de esa barra adicional?

Respuesta

4

Sólo se enfrentaron al mismo problema (en la instalación Remi de nginx + php-FPM en el servidor RHEL6), se puede resolver mediante la adición la siguiente línea en/etc/nginx/fastcgi_params

fastcgi_param SCRIPT_FILENAME $request_filename; 

me encontré con esta línea desaparecidos en RHEL, si bien está presente en una nginx Debian perfecto estado de funcionamiento.

0

Remove try_files $uri index.php$uri; en la línea 3.

+0

Entonces mis descansos de reescritura, ya que tengo URLs como '/ foo/bar' sean cuales redirigen a' index.php/foo/bar' sean. – shadowhand

0

cuestión de preferencia. Mientras seas consistente, de cualquier manera está bien.

agregue la barra en el archivo de configuración, y asegurar que no hay barras adicionales al final y comienzo del nombre de la raíz de documentos y escritura, respectivamente, o viceversa.

+0

No lo compro. Parece que no importa si agrego una barra inclinada a $ root o no. – shadowhand

1

¿El parámetro PATH_TRANSLATED obtener el URI correcto? Estoy pensando que es la concatenación inmediata de las variables en el archivo conf que no se computa. Al agregar una barra inclinada entre ellos, tal vez se interpretan correctamente.

Cuando se obtiene el error No input file specified, compruebe su registro para ver lo que se solicitó URI.

+0

¿Qué registro debo verificar cuando recibo el error 'No archivo de entrada especificado'? Los registros nginx no muestran nada, ya que el error es provocado por PHP. – shadowhand

+0

No hay 'PATH_TRANSLATED' en mi volcado' $ _SERVER'. – shadowhand

+0

Los registros de errores de PHP tampoco muestran errores. – shadowhand

0

lo que sucede cuando se agrega explícitamente una directiva raíz de este modo:

location ~ \.php$ { 
    # fastcgi_split_path_info ^(.+\.php)(.*)$; 
    include fastcgi.conf; 

    root /var/www/my_webroot; 

    fastcgi_pass 127.0.0.1:9000; 
    fastcgi_index index.php; 
} 
+0

Mi '$ root' se define en' servidor {...} 'es que ¿no es suficiente? – shadowhand

Cuestiones relacionadas