Ubuntu 24.04 смешана с младшей версией php

Вопрос или проблема

На моем рабочем столе Ubuntu 24.04 установлены разные версии PHP.
В терминале, если я проверяю версию PHP, у меня не совпадают минорные версии:

php -v = PHP 8.4.1
php8.4 -v = PHP 8.4.4

Если я устанавливаю модуль PHP через APT, например:

sudo apt install php8.4-xml

Модуль активируется для версии 8.4.1, но не для версии 8.4.4. 🙁

Как я могу исправить эту ситуацию?

Ответ или решение

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

Теория

В операционной системе Ubuntu версии пакетов управляются системой управления пакетами APT. Однако, у пользователей может возникнуть ситуация, когда в системе установлены несколько версий одного пакета, и это может привести к конфликтам. Проблема, с которой вы столкнулись, связана с несовместимыми версиями PHP и отдельно установленными модулями.

На Ubuntu каждый установленный основной релиз PHP может иметь разные минорные версии, установленные через различные репозитории или источники. Это может произойти из-за несовместимости в репозиториях или при ручной установке пакетов из других источников.

Кроме того, инструмент APT управляет установкой пакетов для определенной версии, и установка модуля через apt install php8.4-xml может привести к его интеграции в одну минорную версию, игнорируя другую.

Пример

Вы сообщили, что:

  • При выполнении php -v показывается версия PHP 8.4.1.
  • При выполнении php8.4 -v отображается версия PHP 8.4.4.
  • Установка модуля XML через APT интегрируется с версией PHP 8.4.1.

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

Применение

Чтобы справиться с этой проблемой, необходимо предпринять следующие шаги по очистке системы и обеспечению корректной работы PHP:

  1. Проверка установленных пакетов:

    • Запустите dpkg --get-selections | grep php для получения списка всех установленных пакетов PHP и их версий.
    • Попробуйте также apt-cache policy php для просмотра приоритетов и версий, доступных из репозиториев.
  2. Удаление конфликтующих версий:

    • Удалите ненужные или конфликтующие версии PHP и их модули. Например, с помощью sudo apt remove php8.4 вы можете удалить определенные версии.
    • Затем выполните sudo apt autoremove для очистки системы от ненужных зависимостей.
  3. Переустановка PHP:

    • Переустановите необходимую версию PHP из надежного источника. Для этого используется команда sudo apt install php8.4, затем переустановка необходимых модулей, например, sudo apt install php8.4-xml.
  4. Обновление конфигурации:

    • Проверьте конфигурации PHP в директориях /etc/php/8.4/cli/php.ini и /etc/php/8.4/apache2/php.ini (или других, в зависимости от сценария использования) для согласованности.
    • Обновите файлы конфигурации при необходимости, чтобы убедиться, что все модули правильно загружаются.
  5. Проверка альтернативы:

    • Проверьте настройки альтернатив с помощью update-alternatives --config php. Это позволит выбрать основную используемую версию PHP.
  6. Проверка работоспособности:

    • После завершения установки и настройки, убедитесь, что выбранная версия работает корректно с установленными модулями, запустив php -v и протестировав работоспособность модуля XML.

Заключение

Ваш случай с несоответствием версий является классическим примером необходимости управления многоверсионными установками в Linux. С помощью этих шагов вы сможете выровнять и согласовать версии PHP в вашей системе на Ubuntu 24.04. Это также будет способствовать улучшению общей стабильности и надежности работы вашей среды разработки или производственного сервера.

Оцените материал
Добавить комментарий

Капча загружается...