Как включить расширение PHP DOM?

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

У меня есть сервер с установленным PHP 7.4.3, но он не загружает PHP-DOM.

Он не указан в php -m или php -i, и даже когда я загружаю PHP на странице.

Вот что я пробовал делать:

  1. Запустил sudo apt-get install php-xml несколько раз, установка проходит без проблем и показывает, что установлена последняя версия.

  2. Запустил sudo apt-get install php7.4-xml, не удается найти пакет.

  3. Добавил extension=dom.so в php.ini и проверил флаг --disable-dom (не найден).

  4. Перезапускал apache несколько раз в этом процессе.

Как я могу включить расширение PHP DOM?

Запустите эту команду: php7.4 -m. Также убедитесь, что есть файл dom.ini в этой папке: /etc/php/7.4/mods-available/
Когда работаете на Linux, для включения расширения не следует редактировать php.ini, используйте команду phpenmod

Также попробуйте установить PHP из ppa:ondrej/php.

Для детальных шагов прочитайте комментарий от karel

Скорее всего, у вас установлено несколько версий PHP.

  1. Убедитесь, какую версию вы используете: php -v

  2. Запустите установщик конкретной версии: sudo apt-get install php8.4-xml

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

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

Теория

Расширение DOM предоставляется в составе PHP как часть стандартной библиотеки, предназначенной для работы с документа-ориентированными API. Оно реализует API модели объекта документа, что упрощает взаимодействие с XML-документами, их парсинг и манипуляцию.

Расширение многих распространенных функций PHP:

  • Парсинг XML-документов.
  • Создание и изменение элементов XML.
  • Возможность использования XPath для сложных запросов.

Если при исполнении команды php -m вы не видите расширение dom среди активных, это может свидетельствовать о проблемах с его установкой или конфигурацией. Даже если вы уверены в установке пакета php-xml, принцип работы Linux-систем может варьироваться, что иногда требует дополнительной настройки.

Пример

Вы уже предприняли разумные шаги, такие как установка пакета php-xml, добавление extension=dom.so в php.ini и перезапуск Apache, но это не дало результата. Вполне верно заметить, что в Linux системах модульное управление расширениями может требовать использования командных утилит, таких как phpenmod для активации расширений.

Применение

Разберем пошагово, какие действия следует предпринять, чтобы удостовериться, что расширение включено:

  1. Проверка используемой версии PHP:

    php -v

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

  2. Установка пакетов:

    • Обновите список пакетов:
      sudo apt-get update
    • Попробуйте установить требуемый пакет для PHP 7.4:
      sudo apt-get install php7.4-xml

      Если результат сообщает о невозможности найти пакет, возможно, нужно обновить источники пакетов или использовать PPA.

  3. Активировать расширение:
    Используйте команду phpenmod, специфичную для Linux:

    sudo phpenmod dom

    Это автоматически сделает необходимую символическую ссылку в директориях конфигурации.

  4. Проверьте доступность ini-файлов:
    Убедитесь в наличии файла dom.ini в директории /etc/php/7.4/mods-available/. Если он отсутствует, возможно, установка прошла неправильно.

  5. Перезапуск веб-сервера:
    После выполнения изменений необходимо перезапустить Apache, чтобы конфигурации вступили в силу:

    sudo systemctl restart apache2
  6. Использование PPA репозиториев:
    Если стандартные репозитории не дают результата, можно добавить репозиторий от ondrej/php, который поддерживает больше версий и расширений PHP.

    sudo add-apt-repository ppa:ondrej/php
    sudo apt-get update
    sudo apt-get install php7.4-xml
  7. Проверка результата:
    Повторно выполните команду:

    php7.4 -m

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

  8. Проверка конфигурации через веб:
    Создайте файл с содержимым phpinfo(); на веб-сервере и проверьте через него наличие модуля DOM.

Заключение

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

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

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