Я пытаюсь установить XSLT-парсер Saxon-C с его PHP-модулем на моем сервере, как описано здесь: http://www.saxonica.com/saxon-c/index.xml. Я успешно установил его и скомпилировал модуль PHP. Может быть, кто-то из вас может иметь представление о том, что происходит не так.
При запуске apache я получаю следующую ошибку:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/saxon.so' -
libsaxon.so: cannot open shared object file: No such file or directory in Unknown on line 0
Я знаю, что это поиск в библиотеке LD.
more /etc/ld.so.conf.d/jetvm.conf
/opt/saxon/rt/lib/amd64
/opt/saxon/rt/lib/amd64/jetvm
tail -n 1 /etc/apache2/envvars
export LD_LIBRARY_PATH=/opt/saxon/rt/lib/amd64:/opt/saxon/rt/lib/amd64/jetvm:$LD_LIBRARY_PATH
echo $LD_LIBRARY_PATH
/opt/saxon/rt/lib/amd64:/opt/saxon/rt/lib/amd64/jetvm/
Кажется, все правильно. Я также дважды проверил, что все Пути существуют.
Я уже проверил следующие темы (и многое другое), которые не могли мне помочь:
После нескольких часов безуспешных попыток, я действительно надеюсь, что кто-то может помочь мне здесь. Может быть, решение вполне дамп. У меня мало опыта работы с языками, которые нужно компилировать, поэтому я могу лишь смутно понимать, что здесь происходит.
Большое спасибо заранее и наилучшие пожелания.
поиск проблемы Руководство дает некоторые подсказки к этой проблеме:
Выполните следующую команду, чтобы устранить ошибку: «$ sudo ldconfig». Или создайте символическую ссылку на виртуальную машину Java. Это не требуется для установки / компиляции, но это требуется для кода PHP. Следующее должно решить проблему на 64-битной машине:
ln -s $ JAVA_HOME / jre / lib / amd64 / server / libjvm.so /lib64/libjvm.so
В качестве альтернативы можно связать libjvm.so из каталога rt / lib / jetjvm.
Файл libsaxon.so должен быть установлен в каталоге / usr / lib.
В следующем выпуске мы предпринимаем шаги для использования переменной среды.
С дружественной помощью ond1, который является одним из разработчиков Saxon, я наконец нашел решение. Очевидно, что некоторые пути жестко запрограммированы, поэтому вы должны игнорировать вопрос установщика, куда поместить файлы и установить его в / usr / lib.
Я удалил предыдущую установку, установил в / usr / lib и скомпилировал оттуда — и теперь это работает.