Вопрос или проблема
Вчера вечером незапланированное обновление (13/12/2024) на Ubuntu 20.04.6 LTS (focal) обновило php7.4 с версии 7.4.3-4ubuntu2.24 до 7.4.3-4ubuntu2.26.
К сожалению, после обновления модуль php-ldap больше не работает.
Не удается загрузить динамическую библиотеку 'ldap.so' (попытка: /usr/lib/php/20190902/ldap.so (/usr/lib/php/20190902/ldap.so: неопределенный символ: RETURN_THROWS), /usr/lib/php/20190902/ldap.so.so (/usr/lib/php/20190902/ldap.so.so: не удается открыть общий объектный файл
Я проверил это на двух разных серверах.
Я надеялся, что можно будет откатиться, но единственные версии, доступные в репозиториях в данный момент, это последние и базовая версия.
Кто-нибудь знает, где я могу найти пакеты для отката?
И, что наиболее важно, куда сообщить о проблеме?
У нас была такая же проблема. Если вы не удаляете кэш после обновлений, вы можете переустановить старые пакеты, как мы сделали:
apt install php7.4-common=7.4.3-4ubuntu2.24 php7.4-ldap=7.4.3-4ubuntu2.24 php7.4-cli=7.4.3-4ubuntu2.24 php7.4-json=7.4.3-4ubuntu2.24 php7.4-opcache=7.4.3-4ubuntu2.24 php7.4-readline=7.4.3-4ubuntu2.24 libapache2-mod-php7.4=7.4.3-4ubuntu2.24
Та же проблема здесь, приложения, которые используют php и модуль ldap для аутентификации, больше не работают сегодня 12/13/2024
УВЕДОМЛЕНИЕ: Сообщение PHP: Предупреждение PHP: Ошибка при загрузке: Не удается загрузить динамическую библиотеку ‘ldap.so’ (попытка: /usr/lib/php/20190902/ldap.so
Ответ или решение
К сожалению, проблема с модулем php-ldap
после обновления PHP 7.4 на Ubuntu 20.04.6 LTS (Focal) 13 декабря 2024 года, довольно серьезная. Обновление, произведенное автоматически, привело к ошибке, из-за которой модуль не может быть загружен, и это значительно мешает работе приложений, использующих аутентификацию через LDAP.
Подробный анализ проблемы
Согласно предоставленной информации, после обновления до версии 7.4.3-4ubuntu2.26
возникает следующая ошибка:
Unable to load dynamic library 'ldap.so' (tried: /usr/lib/php/20190902/ldap.so (/usr/lib/php/20190902/ldap.so: undefined symbol: RETURN_THROWS), /usr/lib/php/20190902/ldap.so.so (/usr/lib/php/20190902/ldap.so.so: cannot open shared object file)
Эта ошибка указывает на то, что библиотека ldap.so
не может быть загружена из-за отсутствия определенного символа (RETURN_THROWS
). Это может происходить из-за несовместимости между версиями PHP и модулей или изменений в API, внесенных в процессе обновления.
Возможные решения
-
Откат обновлений: Поскольку вы заметили, что другие версии пакетов недоступны в репозиториях, вы можете попробовать выполнить откат с помощью локального кэша пакетного менеджера APT, если он не был очищен после обновления. Для этого выполните следующую команду:
sudo apt install php7.4-common=7.4.3-4ubuntu2.24 php7.4-ldap=7.4.3-4ubuntu2.24 php7.4-cli=7.4.3-4ubuntu2.24 php7.4-json=7.4.3-4ubuntu2.24 php7.4-opcache=7.4.3-4ubuntu2.24 php7.4-readline=7.4.3-4ubuntu2.24 libapache2-mod-php7.4=7.4.3-4ubuntu2.24
Убедитесь, что вы используете правильные версии пакетов. Это может временно решить проблему.
-
Проверка совместимости с другими модулями: Возможно, конфликты возникают из-за других обновленных модулей. Проверьте, требует ли модуль
ldap
обновления или переустановки. -
Сообщение о проблеме: Для последующего разрешения проблемы, создание отчета об ошибке может помочь как вам, так и другим пользователям. Чтобы сообщить о проблеме, вы можете воспользоваться следующими ресурсами:
- Ubuntu Launchpad – зарегистрируйте баг, указав детали и воспроизводимые шаги.
- Форумы и сообщества, такие как Ask Ubuntu или Stack Overflow – поделитесь проблемой и получите возможные решения от сообщества.
Заключение
На данный момент лучше всего установить предыдущие версии необходимых пакетов, если доступ к ним сохраняется. Хотя проблемы с совместимостью могут возникать в результате обновлений, взаимодействие с сообществом и разработчиками может помочь решить возникшие сложности. Это также будет способствовать улучшению будущих релизов и минимизации подобных затруднений.