Как обновить libxml до определенной версии в Linux для php? - PullRequest
0 голосов
/ 25 сентября 2018

Мне нужно обновить библиотеку libxml без перекомпиляции php.Попробовал следующие шаги:

  1. Скачать нужную версию из ftp://xmlsoft.org/libxml2/ (файл .tar.gz)
  2. Извлек файл .tar.gz и команду "cd", чтобы войти в негопапка (например: libxml2-2.9.5)
  3. Затем выполняются следующие команды

    ./configure
    make
    sudo make install
    

Все успешно, но все же php -I | grep libxml показываеттолько старая версия.Пожалуйста, помогите.

1 Ответ

0 голосов
/ 25 сентября 2018

Вы смешиваете между библиотекой и расширением PHP, расширение PHP является просто оболочкой для библиотеки, чтобы иметь возможность использовать ее в своем коде PHP.

Таким образом, компиляция библиотеки не означает, что вы можетеиспользуйте его как расширение для PHP. Вам все равно нужно скомпилировать новую версию из расширения и использовать новую версию библиотеки вместе с ней.

ДляОбновляйте расширение до определенной версии библиотеки, часто вам будет необходимо скомпилировать его из исходного кода, проблема с libxml заключается в том, что по умолчанию он связан с PHP.

Необязательный --with-libxml-dirДиректива используется для указания местоположения libxml в системе, в которой компилируется PHP, в противном случае сканируются только местоположения по умолчанию.

Так что вам может потребоваться перекомпилировать новую версию PHP из исходного кода, ипередайте новый скомпилированный мусорный контейнер для новой версии libxml так же, как это было упомянуто в руководстве : -

./configure .... --with-libxml-dir=/path/to/libxml

Instead из перекомпиляции новой версии PHP и потери всех ваших текущих конфигураций расширений, вы можете попробовать перекомпилировать xml extension из исходного кода и переопределить текущее расширение следующим образом:

клонировать новую версиюPHP:

git clone git@github.com:php/php-src.git
cd php-src/ext/libxml
git checkout YOUR_INSTALLED_PHP_VERSION
phpize
./configure --with-libxml-dir=/path/to/libxml
make
make install
...