parser

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

 

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

Сборка Parser из исходных кодов на хостинге Комбелга. Описал как мог.

Артём 12.02.2003 18:37 / 12.02.2003 21:21

Сборка Parser из исходных кодов на хостинге Комбеллга.

Вот так судьба сложилась, что попался хостинг на Комбелге.
Пришла пора устанавливать там Parser, оказалось, что система у них с OS Solaris 8
да и техника не очень обычная:

с сайта http://www.co.ru/
Виртуальные серверы располагаются на кластере многопроцессорных серверов Sun Microsystems (sparc) под управлением OS Solaris8. В качестве дисковой подсистемы используется аппаратный RAID5 массив. В совокупности это гарантирует высокую доступность сервиса. В качестве www-сервера используется Apache 1.3.
источник: http://www.combellga.ru/rus/serv/internet/web-hosting.jsp

структура сервера у них такая:
- все клиенты распологаются в /home/client/
- у каждого есть свой собственный apache, работающий от имени клиента
- в директории client есть директория www_1, а в ней находятся директории module, logs, content, conf
    client
       |---www_1
             |----module
             |----logs
             |----content
             |      |---cgi-bin
             |      |---htdocs
             |
             |----conf
module - свои модули,
logs - серверные логи пишутся,
content - собственно понятно что,
а вот в conf файлы настроек сервера apache (httpd.conf и т.д.)
вообще настраивать apache можно как угодно.

Скачал я исходные коды в /home/client
- parser-3.0.0006.tar.gz сам Parser (parser-3.0.0007.tar.gz не захотел пчему-то даже конфигурится)
- parser3mysql -3.0.0006.tar.gz драйвер для MySQL
Я собирал без поддержки XML, т.к. пока не использую.
А если надо то читайте файл INSTALL входящий в поставку там написано, что еще скачать и скомпилить.
Например для parser-3.0.0006 нужно:
libxml2 >= 2.4.11
libxslt >= 1.0.9
glib >= 1.2.10
gdome2 >= 0.7.0
далее надо пропатчить libxml2 и libxslt (см. INSTALL, там же есть инфа где скачать)
и установить это все в $D/gnome (--prefix=$D/gnome)
потом при конфигуре parsera надо будет указать
--with-static-xml=$D/gnome
--with-shared-xml=$D/gnome


Работал через ssh доступ в терминале.
Создал в /home/client директорию p3distr
$ mkdir $D/p3distr
$D - подразумевается директория /home/client
можно прям так и задать в shell, чтоб не мучатся набирать
$ D=/home/client
или если это ваша дмашняя директория то проще
$ D=$HOME
переместил туда parser-3.0.0006.tar.gz
и стал устанавливать как написано:
перемещаемся в $D/p3distr
$ cd $D/p3distr
распаковываем архив с исходниками, у нас создается директория parser3-0.0006 и в неё все файлы помещаются
$ gunzip -c parser3-0.0006.tar.gz | tar xvf -
переименовываем parser3-0.0006 в parser3 (зачем см. сборку драйвера mysql ниже)
$ mv parser3-0.0006 parser3
переходим в директорию parser3
$ cd parser3
конфигурим parser (--prefix=$D/p3 задаем директорию в которую устанавливаем бинарник),
если сказать ./configure --help то посмотрите все опции установки
$ ./configure --prefix=$D/p3 
далее делаем make
$ make
и вот тут первый подводный камень:
Выдалось куча всякой инфы, и ошибки возникли, короче make не сработал как надо.
В этой инфе заметил, практически в конце что-то типа ar: command not found.
Думаю что за ar, за команда такая. Заглянул в справочник Linux, оказалось ar это архиватор.
Думаю поищу я ar
$ find / -name ar
нашел
/usr/ccs/bin/ar
короче почему-то этот путь не был прописан в переменной среды $PATH, поэтому ar и был не найден.
Сначала я тормознул и полез исправлять в vi все Makefile где было прописано AR = ar (на AR = /usr/ccs/bin/ar),
но этого делать не надо. Над просто сделать так:
$ PATH=$PATH:/usr/ccs/bin; export PATH
так мы добавили нужный нам путь в $PATH и теперь ar будет найден.
снова
$ make
и наконец
$ make install
если все собралось без ошибок, то получаем в
	$D/p3
	|-----bin (parser3 и auto.p.dist)
	|-----etc
	       |---parser3.charsets (файлы кодировок)
Попробовал проверить как работает parser3 (поместил в cgi-bin переименовал в parser3.cgi)
обратился из веба www.site.ru/cgi-bin/parser3.cgi
Вместо версии, плучил 500 Internal Server Error.
Попробовал из shell ./parser3.cgi
выдало ошибку
ld.so.1: ./parser3: fatal: libgcc_s.so.1: open failed: No such file or directory
Killed
написал письмо в службу поддержки.
они сразу ответили:

>По умолчанию подцепляются библиотеки только
>из /usr/lib, для того чтобы динамический линковщик "увидел"
>в другом месте, надо перед запуском установить переменную окружения LD_LIBRARY_PATH :
>
>LD_LIBRARY_PATH = "/usr/local/lib" ; export LD_LIBRARY_PATH

да действительно сделал, сразу заработало, но только из шела. Из веба пока еще не работает.
А чтобы заработало из веба(служба поддержки подсказала) надо эту переменную прописать в директивах apacha
В httpd.conf или .htaccess поместить:
SetEnv LD_LIBRARY_PATH  /usr/local/lib
для этого нужет mod_env

все после этого заработало все как должно.

Еще хочу сказать, когда собирал драйвер mysql тоже без граблей не обошелся.
Сам процесс прост.

В директории p3distr создать дир. sql и в ней распоковать исходники драйвера.
Когда собирается драйвер он ищет некторые файлы в исходниках самого парсера в ../../parser3 поэтому не стирайте их сразу.
И структура каталогов должна быть такой
 p3distr
   |
   +-parser3 - исходники parserа
   |
   +-sql
      +-- mysql - исходники mysql'
а дальше все получилось как надо:
$ gunzip -c parser3mysql-x.x.tar.gz | tar xvf -
$ cd parser3mysql-x.x
$ ./configure --prefix=$D/p3 --with-mysql-inc=/путь/к/mysql/include/mysql
$ make
$ make install
плучаем готовый драйвер в $D/p3/lib

Не знаю может, у кого-то и правда такие же будут проблемы при сборке из исходных кодов. Пусть это поможет.

P.S.

О хостинге Комбелга остались хорошие впечатления. Отличный у них сервис.
Кстати у каждого сайта есть страница управления, где можно например работать с БД (создавать табл.,изменять, удалять оч удбно).

temach
Артём Юрьев.