До недавнего времени все работало вроде бы не плохо, но один скрипт у меня работал криво. Ковырялся в конфиге, гуглил, и вот снова вышел на эту тему ) Дак вот:
Параметры SCRIPT_NAME и SCRIPT_FILENAME не заменяемы. Они возвращают разные значения. Пояснения из документации http://php.net/manual/ru/reserved.variables.server.php:
При закомментированной строке fastcgi_param SCRIPT_NAME информации о пути к исполняемому скрипту в массиве $_SERVER не было совсем, что влекло за собой падение некоторых приложений, его использующих. Что интересно: в конфиге не обрабатывается именно параметр SCRIPT_NAME, если его задать то вместо страниц выводится лаконичное "no input file specified". Поэтому пришлось его имя в файле fastcgi_params поменять на SCRIPT_NAM, а в конфиге веб-приложения записать $_SERVER["SCRIPT_NAME"] = $_SERVER["SCRIPT_NAM"];'SCRIPT_NAME' - Содержит путь, к текущему исполняемому скрипту.
'SCRIPT_FILENAME' - Абсолютный путь к скрипту, который в данный момент исполняется.
Пример корректного вывода параметров массива $_SERVER приведен тут http://wiki.nginx.org/PHPFcgiExample