parser

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

 

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

Ответ

Creator 10.12.2002 20:18

Итак, об установке Парсера на Мастак.ру.

Скажу сразу, речь идёт об "обычном" (не dedicated) хостинге на американской площадке Мастака.
Там у них установлен, если не ошибаюсь, Linux Red Hat 7.2 (Enigma).

Дык вот, готорый бинарник с parser.ru сразу не подошёл, проблема с группой (атрибут group) у файлов. После перекомпиляции с --enable-foreign-group-files парсер стал ругаться на какую-то динамическую библиотеку (кажется GLIBC).
Включил в конфиг опцию --disable-link-libstdcpp. Затем вылезла проблема с модулем src/types/pa_vtatus.C. По словам Уважаемого Автора, в сием модуле лежит какая-то страшно секретная недокументированная функция :) а Мастаковский компилятор ругался на какую-то (синтаксическую?) ошибку. Пришлось закомментировать целый кусок кода (который "обёрнут" директивой HAVE_GETRUSAGE).

Хмм... не стал бы я утвержать, что являюсь гуру в GNU C++, посему дальнейшие действия и вовсе из области шаманства :)
В общем при последующей компиляции gcc не мог найти файл gmime.h, посему я забрался в src/include/pa_config_auto.p и написал undef перед WITH_MAILRECEIVE (хотя по идее этот файл генерится конфигуратором автоматически).

Последний раз make - и... вау! откомпилился!
чтоб избавиться от debug info в бинарнике запустил strip parser3, потом переименовал в parser3.cgi. Однако этим всё не закончилось... парсер прекрасно работал из shell'а, но категорически отказывался работать "под апачем". Не помню уже, куда "подевалась" ситуация, когда парсер таки запускался, но кричал "parser already configured", а чаще всего просто при обращении к htm'кам с парсер-кодом возвращался заголовок бинарника... Достаточно иметь IQ больше 50 ;), чтобы догадаться - апач считает парсер простым текстовиком, т.е. не запускает его, а читает. А если IQ больше 100 ;)), то можно догадаться положить в cgi-bin файл .htaccess со строчкой Options +ExecCGI. Всё. Работает.

На эти околонаучные изыскания было потрачено чуть более 5 часов онлайн, что по ценам маздайного тулателекома будет равняться одному месяцу хостинга на Мастаке. А сколько нервов, моих, суппорта Мастака и Уважаемого Автора - не перечесть :)

Теперь, пожалуй, напишу краткий user's manual по сборке и установке Parser3 на Мастаке.ру:

1. Слёзно просим у суппорта Мастака shell-доступ.
2. Если не дают, переходим к пункту 3.
2а. В шелле грузим исходники с сайта parser.ru командой wget http://www.parser.ru/f/1/gde-to/tam/parser3xxxx.tar.gz
2аа. Офигеваем от скорости скачивания и понимаем, что дома о таком канале можно только мечтать :)))
2б. Комадуем: gzip -d parser3xxxx.tar.gz, tar -xf parser3xxxxx.tar
2в. Удаляем parser3xxxxx.tar, чтобы не забивать место (его больше 10 мег может понадобиться).
2г. Затем: cd parser3xxxx, ./configure --enable-foreign-group-files --disable-link-libstdcpp
2д. Комментируем в src/types/pa_vstatus.C кусок, обрамлённый #ifdef HAVE_GETRUSAGE .... #endif.
2е. Пишем undef перед WITH_MAILRECEIVE в src/include/pa_config_auto.p
2ё. Командуем make... самое время помолиться кому-нибудь... :)
2ж. Если так и не откомпилилось, то переходим к пункту 3.
2з. Заходим в src/targets/cgi, командуем strip parser3, затем mv parser3 parser3.cgi
2и. Кладём полученный parser3.cgi в папку web/cgi-bin
2л. Переходим к пункту 4.
3. Качаем http://mnc.mastak.com/files/parser3.cgi.gz (боюсь, скоро этот линк будет бит, тогда будет работать http://www.mynotescenter.com/files/parser3.cgi.gz)
3а. Распаковываем WinRAR'ом локально и заливаем parser3.cgi в web/cgi-bin на вашем сайте.
4. Туда же SQL-драйвер (в /lib), чарсеты (/charsets) и auto.p, который можно взять с сайта parser.ru.
5. Создаём в web ("корень веб-пространства") файл .htaccess:

AddHandler parsed3-html .htm .html
Action parsed3-html /cgi-bin/parser3.cgi

DirectoryIndex index.htm

# запрет на доступ к .p файлам. основной: auto.p
<Files ~ "\.p$">
Order allow,deny
Deny from all
</Files>

6. Создаём в web/cgi-bin файл .htaccess:

Options +ExecCGI

# На всякий случай
AddHandler cgi-script .cgi

7. Заливаем всё остальное (htm'ки, картинки, другие .p-файлы, etc.)
8. Всё должно работать.