parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

Misha v.3 24.12.2012 04:08 / 24.12.2012 04:10

после такого сразу возникло желание помочь :)

в коде parser3.C есть такое:
	// were we started as CGI?
	cgi=
		(
			getenv("SERVER_SOFTWARE") || 
			getenv("SERVER_NAME") || 
			getenv("GATEWAY_INTERFACE") || 
			getenv("REQUEST_METHOD")
		)
		&& !getenv("PARSER_VERSION");
из этого видно, какие переменные окружения парсер анализирует чтобы понять, запущен-ли он как cgi или нет.

чтобы понять что происходит добавляем в launcher.bat строки:
echo "%SERVER_SOFTWARE%"
echo "%SERVER_NAME%"
echo "%GATEWAY_INTERFACE%"
echo "%REQUEST_METHOD%"
echo "%PARSER_VERSION%"
и видим, что переменные окружения GATEWAY_INTERFACE и REQUEST_METHOD не пусты, поэтому парсер считает, что запущен как cgi и НЕ смотрит на переданный ему параметр, а пытается получить имя файла через env.

правим это, добавляя в launcher.bat очистку переменных окружения:
set "SERVER_SOFTWARE="
set "SERVER_NAME="
set "GATEWAY_INTERFACE="
set "REQUEST_METHOD="
ещё один способ: установить переменную PARSER_VERSION (а вообще странно, она должна была сама установиться при file::exec[launcher.bat])