- Ваш двоичный файл PHP связан с libxml2.so.16, но в вашей системе есть только libxml2.so.2.12.5.
- Из-за этого несоответствия каждый символ, связанный с XML, не может быть разрешен, и PHP не может работать.
- Пакеты OpenWRT тесно связаны: PHP из одной сборки ожидает точную версию библиотек ABI из той же сборки.
- Если вы скопировали PHP из другого дистрибутива (Debian, Alpine и т. д.), он будет ожидать libxml2.so.16.
- Собственный пакет OpenWRT libxml2 предоставляет libxml2.so.2. Версии ABI различаются, поэтому они не взаимозаменяемы.
Единственное надежное решение — использовать PHP, созданный для вашей версии OpenWRT:
- Удалите несовпадающий двоичный файл PHP:
(или удалите вручную, если вы его скопировали)
Код: Выделить всё
opkg remove php8 php8-cli - Переустановите PHP из каналов OpenWRT:
Это гарантирует, что PHP скомпилируется с тем же libxml2 ABI (
Код: Выделить всё
opkg update opkg install php8 php8-cli php8-mod-xml), который имеется в вашей системе.Код: Выделить всё
.so.2 - Проверьте связь:
Теперь должно отображаться libxml2.so.2.
Код: Выделить всё
ldd /usr/bin/php | grep libxml2
Вы могли бы символическую ссылку:
Код: Выделить всё
ln -s /usr/lib/libxml2.so.2 /usr/lib/libxml2.so.16
Переустановите PHP из того же канала выпуска OpenWRT, который вы используете. Таким образом, менеджер пакетов извлекает правильную зависимость libxml2, и все выстраивается.
Подробнее здесь: https://stackoverflow.com/questions/798 ... -needed-by
Мобильная версия