dom xml установка на unix

regi

Новичок
dom xml установка на unix

понадобилось использовать функции domxml и на сервере под linux пишет:
Fatal error: Call to undefined function: domxml_open_file() in

под виндой решилось просто - поставил libxml скопировав нужные длл файлы.
как поставить libxml под unix, или где можно почитать про установку?
 

regi

Новичок
скачал libxml2-2.4.14.tar.gz
делаю все как надо вроде:
./configure
make
make install

при make выдает в конце такую ошибку:
gcc -DHAVE_CONFIG_H -I. -I. -I. -I./include -I./include -g -O2 -Wall -c parser.c -fPIC -DPIC -o .libs/parser.lo
virtual memory exhausted: Cannot allocate memory
make[2]: *** [parser.lo] Error 1
make[2]: Leaving directory `/home/libxml2-2.4.14'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/libxml2-2.4.14'
make: *** [all-recursive-am] Error 2

я прочел ./configure --help но не понял, какие опции нужно использовать, и нужно ли использовать обязательно?
virtual memory exhausted: Cannot allocate memory - виртуальная память израсходована? не понимаю почему :)
 

tony2001

TeaM PHPClub
>libxml2-2.4.14.tar.gz
не знаю где ты такую взял, но это очень старая версия.

>gcc -DHAVE_CONFIG_H -I. -I. -I. -I./include -I./include -g -O2 -Wall -c parser.c -fPIC -DPIC -o .libs/parser.lo
>virtual memory exhausted: Cannot allocate memory
ошибка при сборке libxml?
а РНР тут причем?
 

regi

Новичок
libxml установил:
pkg-config --list-all
....
libxml-2.0 libXML - libXML library version2.
....
а пхп все равно ругается, что нет такой функции Fatal error: Call to undefined function: domxml_open_file() in

пхп скомпилирован с поддержкой хмл:
--with-xml' '--with-expat-dir=/usr' '--with-dom=shared,/usr' '--with-dom-xslt=/usr' '--with-dom-exslt=/usr' '--with-xmlrpc=shared'

не пойму, что не так?
 

tony2001

TeaM PHPClub
>--with-dom=shared,/usr
ты делаешь осмысленные действия или для тебя это что-то вроде шаманских танцев?
ты же сам собрал dom как .so - вот и подключи её теперь в php.ini
 

regi

Новичок
я написал extension=libxml2.so - не помогло. что делать-то, помогите, проект скоро сдавать, а из-за этого очень нужное не работает!
 

tony2001

TeaM PHPClub
ну и причем тут libxml2.so ?
откуда ты вообще взял это имя?
ты make install сделал?
shared-модули в extension_dir положились?
зачем ты выдумываешь какие-то файлы, если надо просто посмотреть какое у него имя (dom.so, конечно) и прописать его.
 

regi

Новичок
libxml2 оказался установлен на хосте изначально
но в папке /usr/lib лежит только
lib-org-xml-sax.so.0
lib-org-xml-sax.so.0.0.0
libxml2.a
libxml2.la
libxml2.so
libxml2.so.2
libxml2.so.2.5.11
 

tony2001

TeaM PHPClub
regi
ты собираешь РНР.
объясни, плз, почему ты ищешь собранные в результате либы в /usr/lib.
почему не в /usr/local/lib ? или на другой машине вообще ?
люди без проблем с логикой ищут их в <директория с исходниками РНР>/lib/
 

regi

Новичок
я не собираю пхп, он уже собран! со всеми нужными опциями.
libxml2 тоже стоит. но ничего не работает.
 

tony2001

TeaM PHPClub
извини, видимо, я должен признать, что я тебе объяснить не смогу.
начни с начала - т.е. с мануала.
 

regi

Новичок
попробуйте, пожалуйста, еще раз объяснить :), так как я не могу в настоящее время пересобрать пхп.

у меня есть хостинг, там стоит php 4.3.4 и libxml2 2.5.11-1

php сконфигурирован с такими опциями(phpinfo()):
.....--with-xml' '--with-expat-dir=/usr' '--with-dom=shared,/usr' '--with-dom-xslt=/usr' '--with-dom-exslt=/usr' '--with-xmlrpc=shared' '--with-pcre=/usr' '--with-zlib'....

как подключить libxml к php?

в php.ini сказано, что все модули подключаются в /etc/php.d/ в ini файлах. Создаю там xml.ini и пишу в нем
extension=libxml2.so

вы сказали, что это неправильно :) dom.so в папке /usr/lib отсутствует.
 

tony2001

TeaM PHPClub
тебе не libxml надо подключать, а dom.
ты зачем-то его собрал как shared и не понимаешь, что теперь тебе надо подключить dom.so из php-src/libs в php.ini
при make install dom.so кладется в директорию экстеншенов - там его и ищи.
никаких *.ini, кроме php.ini нет - не надо придумывать и додумывать.

-~{}~ 15.10.04 14:56:

собери с --with-dom=/usr и не морочь себе голову.
 
Сверху