Установка парсера 2 на net.ru


Установка парсера 2 на net.ruМорда: СтандартнаяСераяЗеленая Главная / Портфель / Установка парсера 2 на net.ru Запомнить № 3:
 Установка парсера 2 на net.ruОпубликовано:
 26 февраля 2002 |
Сегодня не совсем обычный пример, — это не пример кода или алгоритм, но метод установки парсера на сервера провайдера net.ru. (т.е. там, где находится этот сайт).
Причина побудившей меня написать об этом, это то что такая же ситуация может встретиться и у других провайдеров (может быть различающаяся только мелкими деталями) и это может помочь мне и другим не наступать ещё раз на одни и те же грабли.
Как правило, сайт сначала создается и испытывается на локальной машине, а затем уже переносится на сервер провайдера. На локальной машине у меня все работало нормально, а при переносе на сервер провайдера все пошло наперекосяк и ничего не хотело работать.
Мне выдавалось все время [undefined macro html] на любой странице сайта. Как оказалось причина была в том, что парсер не мог прочитать определения макросов из _macro.cfg да и не только из него, — не подключались никакие другие файлы с помощью ^macro_use[...].
Как оказалось, причина была в кривой переменной окружения DOCUMENT_ROOT. Для нормальной работы парсера (как написано в доках) она должна принимать значение = физический путь в файловой системе сервера до корня вашего сервера (виртуального сервера), т.е. например в Windows, если Apache стоит в каталоге d:\apache и корень информационного наполнения находится в каталоге d:\apache\www, данная переменная должна принимать значение: d:/apache/www. Проверить это можно оператором ^env[DOCUMENT_ROOT]. Под Unix пути соответственно другие.
Вызов ^env[DOCUMENT_ROOT] на удаленном сервере давал /users, т.е. переменная DOCUMENT_ROOT совсем не указывает на реальное размещение корня виртуального сервера, и поэтому парсер не мог найти _macro.cfg в корне, ни подключать никакие определения макросов из файлов.
Для решения проблемы мне в форуме по парсеру предложили писать полный путь к подключаемому файлу при использовании ^macro_use[...] и подключать _macro.cfg в каждом файле вручную и это сработало.
Для выяснения полного пути к корню сервера надо сделать вызов ^env[PATH_TRANSLATED] из любого документа (можно из документа по умолчанию) находящегося в корне сервера. На net.ru такой вызов дает вот что:
/users/e/g/egoroff.spb.ru/html/www/file_name.html
Замечание:
На net.ru все html документы должны находится в каталоге html или в его подкаталогах (у меня они находятся в подкаталоге www)
После всех этих манипуляций получаем физический путь к корню:/users/e/g/egoroff.spb.ru/html/wwwСоздаем соответствующую переменную (у меня ^var[document.root;/e/g/egoroff.spb.ru/html/www]) и в каждом html файле делаем такой вызов:^macro_use[^var[document.root]/macro.cfg]Для всех других подключений файлов с помощью данного оператора также используем эту переменную.Для удобства работы я сделал файл _macro.cfg очень простым:
@autoexec[]
# Document root
# на локальной машине следующая строчка должна быть закомментирована
^var[document.root;/e/g/egoroff.spb.ru/html/www]
^macro_use[^var[document.root]/macro_real.cfg]
и его я и подключаю вручную в каждом html файле, а файл _macro_real.cfg и является «настоящим» _macro.cfgДа и еще, — Parser должен находится в корневом каталоге иначе ничего не будет работать и соответственно строка, назначающая его обработчиком html файлов в.htaccess будет иметь вид:
AddHandler parsed-html .html
Action parsed-html /parser2.cgi
<< № 2 | Содержание | № 4 >>Из последнего№ 24 Работаем с .htpasswd 08.11.2003 (Изменено: 10.01.2004)№ 23 Самодокументирование парсерного кода 14.09.2003№ 22 Работаем с RSS 21.02.2003№ 21 Топологическая сортировка 16.02.2003№ 20 Установка 3-го парсера на хостинге 350mb.ru 12.02.2003ПолезноеParser 2Parser 2 - downloadParser2 - FAQParser2 - ПримерыParser2 - форумДокументация на Parser 2Хостингnet.ruГлавная / Портфель / Установка парсера 2 на net.ru Запомнить Информация о сервереАвторРегистрация/настройки
содержание | 2 | гидроизоляция и проникающая изоляция
Используются технологии uCoz