переменная PHP_SELF в php-cgi

duxa

Новичок
переменная PHP_SELF в php-cgi

есть необходимость выполнять скрипты в php-cgi
сервер - nginx

при выполнении скриптов регулярно вылезают ошибки. начал ковыряться - оказалось что именно при выполнении в php-cgi не определяется $_SERVER['PHP_SELF']. Весь остальной массив $_SERVER определен. А вот $_SERVER['PHP_SELF'] - переменная такая есть, но значение no value.

пробовал даже руками передавать эту переменную
типа

PHP:
fastcgi_param  PHP_SELF         $fastcgi_script_name;
но переменная все равно не определена. кстати пробовал передавать

PHP:
fastcgi_param  MY_PARAM         $fastcgi_script_name;
после этого появляется $_SERVER['MY_PARAM'] с правильным значением.

пробовал php версии 5.2.3 и php 5.2.4

есть идеи как вернуть переменную, чтобы не править код скриптов?
 

Nelius

кипарис во дворе
_SERVER["REQUEST_URI"]
_SERVER["SCRIPT_NAME"]
_SERVER["ORIG_PATH_INFO"]

А эти значения есть?
 

duxa

Новичок
Автор оригинала: Nelius
_SERVER["REQUEST_URI"]
_SERVER["SCRIPT_NAME"]
_SERVER["ORIG_PATH_INFO"]

А эти значения есть?
_SERVER["REQUEST_URI"] - есть
_SERVER["SCRIPT_NAME"] - нет, но есть _SERVER["SCRIPT_FILENAME"] (передается из конфига nginx)
_SERVER["ORIG_PATH_INFO"] - тоже нет, но есть _SERVER["ORIG_PATH_TRANSLATED"] (эта НЕ передается nginx)

все переменные определены.
 

duxa

Новичок
Автор оригинала: tony2001
пусть nginx передаёт SCRIPT_NAME, это и есть PHP_SELF.
конфиг мне по наследству достался, так что я как-то в нем косяков не искал
спасибо, теперь все рОвно =)
 

Nelius

кипарис во дворе
незнаю можно ли так, но в голову приходит такое решение, где-нить в самом начале:

PHP:
$_SERVER['PHP_SELF'] = $_SERVER['SCRIPT_FILENAME'];
Проверил вроде пашет...

-~{}~ 09.11.07 18:57:

Упс, уже не актуально) рад что все решилось)
 

duxa

Новичок
кстати, переменная $_SERVER['SCRIPT_FILENAME'] все-таки нужна или нет?
 

Nelius

кипарис во дворе
Автор оригинала: duxa
кстати, переменная $_SERVER['SCRIPT_FILENAME'] все-таки нужна или нет?
Ну кому-как лично я её не использую)
Насчет того что с ней внутри php происходит я незнаю, но предполагаю что ничего)))
 
Сверху