Сборка 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
Артём Юрьев.