real solution for `No input file specified.` (nginx, fpm)
Using try_files $uri =404;
first!
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
Thanks to http://nginxlibrary.com/resolving-no-input-file-specified-error/
In some old tutorials you often find something like this
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (! -f $document_root$fastcgi_script_name) {
return 404;
}
But as https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/ states you should better use try_files instead
Just a side note: It's dangerous to use the config you posted without an if/try_files block because it can allow execution of arbitrary code under some circumstances! In fact there are a lot of tutorials on the net that don't cover this aspect so I'd recommend everyone to check if their config is not just working but also secure.