문제

I use the following configuration for nginx: http://gist.github.com/340956

However, this configuration causes a No input file specified error with PHP. The only way I have been able to solve it is by altering this line:

fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;

Note the "/" between $document_root and $fastcgi_script_name. I was informed that this is the wrong configuration but no one has been able to tell me exactly why my configuration requires this extra slash.

How can I get rid of that extra slash?

도움이 되었습니까?

해결책

Just faced the same issue (in remi installation of nginx+php-fpm on a RHEL6 server), you can solve it by adding the following line in /etc/nginx/fastcgi_params

fastcgi_param  SCRIPT_FILENAME    $request_filename;

I found this line missing in RHEL, while present in a perfectly working Debian nginx.

다른 팁

Does the param PATH_TRANSLATED get the correct URI? I'm thinking it's the immediate concatenating of the variables in the conf file that doesn't compute. When adding a slash between them, maybe they are interpreted correctly.

When you get the error No input file specified, check your log to see what URI was requested.

Remove try_files $uri index.php$uri; in line 3.

Matter of preference. As long as you are consistent, either way is fine.

Either add the slash in the configuration file, and ensure there are no additional slashes at the end and start of the document root and script name respectively or vice versa.

what happens when you explicitly add a root directive like so:

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;
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top