Включение SOAP для PHP на сервере CentOS 6.6

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

Я пытаюсь включить SOAP на моем сервере. SOAP установлен, но не отображается в php_info.

Версия PHP 5.4.39

Информация о системе: Linux ip-xxx-xxx-xxx-xxx.secureserver.net 2.6.32-042stab106.4 #1 SMP Пт 27 марта 15:19:28 MSK 2015 x86_64

Команда конфигурации:

'./configure' '--disable-fileinfo' '--enable-bcmath' '--enable-calendar' '--enable-ftp' '--enable-gd-native-ttf' '--enable-libxml' '--enable-pdo=shared' '--enable-sockets' '--prefix=/usr/local' '--with-apxs2=/usr/local/apache/bin/apxs' '--with-curl=/opt/curlssl/' '--with-freetype-dir=/usr' '--with-gd' '--with-imap=/opt/php_with_imap_client/' '--with-imap-ssl=/usr' '--with-jpeg-dir=/usr' '--with-kerberos' '--with-libdir=lib64' '--with-libxml-dir=/opt/xml2/' '--with-mcrypt=/opt/libmcrypt/' '--with-mysql=/usr' '--with-mysql-sock=/var/lib/mysql/mysql.sock' '--with-openssl=/usr' '--with-openssl-dir=/usr' '--with-pcre-regex=/opt/pcre' '--with-pdo-mysql=shared' '--with-pdo-sqlite=shared' '--with-pic' '--with-png-dir=/usr' '--with-xpm-dir=/usr' '--with-zlib' '--with-zlib-dir=/usr'

Загруженный файл конфигурации: /usr/local/lib/php.ini

Который содержит: [soap]

;extension=soap.so
; Включить модуль расширения SOAP
extension="/usr/lib64/php/modules/soap.so"

Я не уверен, какая еще информация могла бы быть полезной, но любой помощь будет очень признательна.

php-soap находится в EPEL, поэтому я бы не стал утруждать себя компиляцией.

Установите следующим образом:

yum install epel-release
yum makecache
yum install php-soap

Из вашей команды конфигурации видно, что вы не компилировали с конфигурацией SOAP.
Пожалуйста, попробуйте перекомпилировать PHP, добавив следующую опцию:

--enable-soap=shared

Таким образом, полная команда для вашей компиляции должна измениться на:

'./configure' '--disable-fileinfo' '--enable-bcmath' '--enable-calendar' '--enable-ftp' '--enable-gd-native-ttf' '--enable-libxml' '--enable-pdo=shared' '--enable-sockets' '--prefix=/usr/local' '--with-apxs2=/usr/local/apache/bin/apxs' '--with-curl=/opt/curlssl/' '--with-freetype-dir=/usr' '--with-gd' '--with-imap=/opt/php_with_imap_client/' '--with-imap-ssl=/usr' '--with-jpeg-dir=/usr' '--with-kerberos' '--with-libdir=lib64' '--with-libxml-dir=/opt/xml2/' '--with-mcrypt=/opt/libmcrypt/' '--with-mysql=/usr' '--with-mysql-sock=/var/lib/mysql/mysql.sock' '--with-openssl=/usr' '--with-openssl-dir=/usr' '--with-pcre-regex=/opt/pcre' '--with-pdo-mysql=shared' '--with-pdo-sqlite=shared' '--with-pic' '--with-png-dir=/usr' '--with-xpm-dir=/usr' '--with-zlib' '--with-zlib-dir=/usr'--enable-soap=shared

Затем скопируйте скомпилированный модуль SOAP с помощью:

cp modules/soap.so /usr/lib64/php/modules

Перезапустите ваш веб-сервер Apache с помощью:

/etc/init.d/httpd restart

Затем проверьте, активировано ли расширение SOAP на странице phpinfo().

Попробуйте установить, используя следующую команду.

yum install php54-php-soap

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

Для успешного включения SOAP на вашем сервере с CentOS 6.6 и PHP версии 5.4.39 важно следовать определенным шагам и принципам настройки, учитывая специфику операционной системы и версии PHP. Рассмотрим подход к решению этой задачи, используя метод TEA (Теория, Пример, Применение).

Теория

SOAP (Simple Object Access Protocol) – это протокол обмена сообщениями, основанный на XML, который позволяет веб-приложениям взаимодействовать друг с другом независимо от их реализации на различных платформах и языках. Для активации SOAP в PHP требуется, чтобы библиотека была установлена и загружена при запуске PHP-скриптов. В вашем случае, несмотря на то, что PHP уже установлен, SOAP не отображается в результатах phpinfo(), что указывает на его неактивность или неправильную конфигурацию.

Пример

  1. Использование репозитория EPEL: Пакет php-soap доступен в репозитории EPEL (Extra Packages for Enterprise Linux), облегчающем установку дополнительных пакетов, отсутствующих в стандартных репозиториях.

  2. Компиляция из исходников: В вашем конфигурационном скрипте отсутствует параметр --enable-soap=shared, необходимый для включения поддержки SOAP. Добавление этого параметра позволяет компилировать и подключать SOAP как расширение PHP.

Применение

Установка из EPEL

  1. Добавление репозитория EPEL:

    yum install epel-release
    yum makecache
  2. Установка php-soap:

    yum install php-soap

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

   /etc/init.d/httpd restart

Компиляция из исходников

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

  1. Редактирование конфигурации команды: Добавьте --enable-soap=shared.

    ./configure --disable-fileinfo --enable-bcmath --enable-calendar --enable-ftp --enable-gd-native-ttf --enable-libxml --enable-pdo=shared --enable-sockets --prefix=/usr/local --with-apxs2=/usr/local/apache/bin/apxs --with-curl=/opt/curlssl/ --with-freetype-dir=/usr --with-gd --with-imap=/opt/php_with_imap_client/ --with-imap-ssl=/usr --with-jpeg-dir=/usr --with-kerberos --with-libdir=lib64 --with-libxml-dir=/opt/xml2/ --with-mcrypt=/opt/libmcrypt/ --with-mysql=/usr --with-mysql-sock=/var/lib/mysql/mysql.sock --with-openssl=/usr --with-openssl-dir=/usr --with-pcre-regex=/opt/pcre --with-pdo-mysql=shared --with-pdo-sqlite=shared --with-pic --with-png-dir=/usr --with-xpm-dir=/usr --with-zlib --with-zlib-dir=/usr --enable-soap=shared
  2. Компиляция и установка модуля SOAP:

    make
    make install
  3. Копирование модуля:

    cp modules/soap.so /usr/lib64/php/modules
  4. Редактирование файла php.ini: Убедитесь, что строка extension=soap.so не закомментирована в файле /usr/local/lib/php.ini.

  5. Перезапуск веб-сервера:

    /etc/init.d/httpd restart
  6. Проверка конфигурации: Убедитесь, что SOAP успешно загружен, вызвав phpinfo() в одном из PHP-скриптов и проверив наличие секции SOAP.

Заключение

Два предложенных подхода — через yum и EPEL для автоматической установки пакетов, и ручная компиляция — позволяют гибко настроить сервер в зависимости от ваших нужд. Неправильное подключение или отсутствие параметров могут вынудить выбирать именно метод компиляции, особенно при уникальной среде рабочего приложения. Выбор зависит от ваших приоритетов в конфигурации PHP и необходимости поддержки специфических функций. Соблюдая предложенные шаги, вы сможете активировать и использовать расширение SOAP в вашей среде с минимальными трудностями.

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

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