Как включить –enable-soap в php на linux?

Это вопрос. У меня PHP 5.2.9 на Apache, и я не могу обновить PHP. Есть ли способ включить SOAP в PHP 5.2.9? Руководство по PHP не помогло, когда сказано: «Чтобы включить поддержку SOAP, настройте PHP с помощью –enable-soap». Как настроить?

Получение SOAP-работы обычно не требует компиляции PHP из исходного кода. Я бы рекомендовал попробовать это только как последний вариант.

Для хорошей оценки, проверьте, что ваш phpinfo говорит, если что-либо, о расширениях SOAP:

$ php -i | grep -i soap 

чтобы убедиться, что это расширение PHP отсутствует.

Предполагая, что вы ничего не видите в SOAP в phpinfo, посмотрите, какие пакеты PHP SOAP могут быть доступны вам.

В Ubuntu / Debian вы можете искать:

 $ apt-cache search php | grep -i soap 

или в RHEL / Fedora вы можете выполнить поиск:

 $ yum search php | grep -i soap 

Обычно для вас доступны два пакета SOAP SOAP, обычно это php-soap и php-nusoap . Обычно мы используем php-soap с настройкой PHP с помощью --enable-soap .

В Ubuntu / Debian вы можете установить:

 $ sudo apt-get install php-soap 

Или в RHEL / Fedora вы можете установить:

 $ sudo yum install php-soap 

После установки вам может потребоваться поместить файл ini и перезапустить Apache.

Что касается вашего вопроса: нет, если активировать из .ini недостаточно, и вы не можете обновить PHP, вы не можете многое сделать. Некоторые модули, но не все, могут быть добавлены без перекомпиляции ( zypper install php5-soap , yum install php-soap ). Если этого недостаточно, попробуйте установить некоторый класс PEAR для интерпретируемой поддержки SOAP (NuSOAP и т. Д.).

В общем, --switches с двойным тире предназначены для использования при перекомпиляции PHP с нуля.

Вы загрузите исходный пакет PHP (например, сжатый tar-файл tar.tgz, скажем), разложите его где-нибудь, а затем, например, в Linux, запустите скрипт configure

 ./configure --prefix ... 

Команда configure используемая вашим PHP, может быть показана с помощью phpinfo() . Повторение его идентично должно дать вам точную копию PHP, которую вы сейчас установили. Добавление --enable-soap будет включать SOAP в дополнение ко всему остальному.

Тем не менее, если вы не знакомы с перекомпиляцией PHP, не делайте этого . Он также требует наличия нескольких вспомогательных библиотек, которые вы могли бы или могли бы иметь: freetype , gd , libjpeg , XML , expat и т. Д. И т. Д. (Недостаточно, они установлены , они должны быть версией разработчика , то есть с заголовки и т. д., в большинстве дистрибутивов установка libjpeg может быть недостаточной, и вам может понадобиться libjpeg-dev ).

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

Если у вас есть Ubuntu на вашем компьютере, следующие шаги помогут вам:

  1. Сначала проверьте файл php-тестирования, если у вас есть мыло (клиент / сервер) или нет, используя phpinfo (); и проверить результаты в браузере. Если у вас есть это, это будет выглядеть следующим образом (если не перейти к шагу 2):

введите описание изображения здесь

  1. Откройте терминал и вставьте его: sudo apt-get install php-soap.

  2. Перезапустите сервер apache2 в терминале: перезапустите службу apache2.

  3. Чтобы снова проверить, чтобы ваш тестовый файл php выглядел как мой на шаге 1.