Ошибка загрузки общей библиотеки libxml2.so.16: такого файла или каталога нет (необходим для /usr/bin/php).Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Ошибка загрузки общей библиотеки libxml2.so.16: такого файла или каталога нет (необходим для /usr/bin/php).

Сообщение Anonymous »

Спасибо за подтверждение с помощью ldd. Вывод делает это предельно ясным:
  • Ваш двоичный файл PHP связан с libxml2.so.16, но в вашей системе есть только libxml2.so.2.12.5.
  • Из-за этого несоответствия каждый символ, связанный с XML, не может быть разрешен, и PHP не может работать.
🔎 Почему это происходит в OpenWRT
  • Пакеты 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:

    Код: Выделить всё

    opkg update
    opkg install php8 php8-cli php8-mod-xml
    
    
    Это гарантирует, что PHP скомпилируется с тем же libxml2 ABI (), который имеется в вашей системе.
  • Проверьте связь:

    Код: Выделить всё

    ldd /usr/bin/php | grep libxml2
    
    
    Теперь должно отображаться libxml2.so.2.
⚠️ Небезопасное обходное решение
Вы могли бы символическую ссылку:

Код: Выделить всё

ln -s /usr/lib/libxml2.so.2 /usr/lib/libxml2.so.16
…но это опасно. Различия в ABI означают, что PHP может привести к сбою или повреждению памяти. Используйте это только для быстрого тестирования, а не для рабочей среды.

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

👉 Хотите, чтобы я проверил, на какой ветке выпуска OpenWRT (например, 23.05, снимок) работает ваш маршрутизатор, чтобы я мог указать вам точный канал пакета PHP? Это гарантирует совместимость.

Подробнее здесь: https://stackoverflow.com/questions/798 ... -needed-by
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»