Php soapclient install linux

Установка PHP Soap на CentOS

SOAP (Simple Object Access Protocol) — представляет собой простой протокол основанный на XML, позволяет обмениваться информацией между распределенными приложениями. На практике может использоваться для разных задач. Одни из популярных это интеграция приложений с внешними службами. В моем случае потребовалось интегрировать веб-приложение системой 1C, для получения актуальной информации в режиме реального времени из базы данных 1C по запросу пользователя на сайте. На самом деле SOAP умеет работать с множеством протоколов прикладного уровня, среди которых SMTP, FTP, HTTP, HTTPS, а так же др. На первых порах SOAP главным образом предназначался для реализации удаленного вызова процедур, или как его ещё сокращенно именуют RPC. Сегодня он используется произвольно, для обмена данными в формате XML.

Базовая конфигурация PHP обычно не включает в себе такие модули, и при попытке обращаться к специализированным классам для работы с SOAP сервером, приходилось наблюдать сообщение об ошибке, что-то вроде этого:
Fatal error: Class ‘SoapClient’ not found

Это уже пол дела, так как мы уже знаем, что у нас нету класса SoapClient. Чтобы это дело заработало, необходимо к интерпретатору PHP прикрутить модуль Soap Client, который собственно и даст возможность работать с SOAP.

Тут вам потребуется доступ с правами root на сервер, чтобы сделать нужные операции. Если вы пользуетесь хостингом, где у вас нет таких полномочий, то попросите администраторов хостинга, скорее всего им не составит большого труда выполнить эти операции.

В моем же случае использовалась система CentOS. На ней установлена традиционная связка LAMP, которую можно повстречать на многих других веб-серверах. Установка простая, и типична для систем CentOS Linux. Итак, мы авторизовались в системе под root, далее посредством менеджера пакетов YUM мы будем устанавливать php soap.

Устанавливаем пакет php soap

После выполнения команды вам будет показана информация о пакете, который планируется установить в систему, и вас так же попросят подтвердить начало установки:

После ввода команды «y», а это говорит о том, что вы подтверждаете установку, начнется процедура скачивания и установки пакета из репозитория. После установки php soap необходимо так же перезапустить веб сервер, в нашем случае это httpd. Это позволит веб-серверу подгрузить изменения в конфигурации.

Перезагружаем веб-сервер httpd

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

Проверяем наличие SOAP в PHP

В результате выполнения команды, вы должны увидеть строку с надписью «soap», это говорит о том, что он уже есть. Кроме того проверить его наличие так же можно выполнив обращения к классу модуля из самих скриптов, если это не затруднительно, если скрипты отрабатывают, то это означает что библиотека установлена.

Источник

Как установить расширение soap?

Как установить мыло?

я получил эту ошибку:

фатальная ошибка: класс ‘SoapClient’ не найден в /home/user/mysite.com/path/to/file.php на линии 16

Я размещаю свой сайт в DreamHost, и они не поддерживают стороннюю установку.

Я скопировал php.ini-файл с этим скриптом: http://sxi.sabrextreme.com/dh-phpini

Я использую API с веб-сайта, и он говорит что-то вроде это:

и вот список расширений моего php.файла ini:

проблема, расширение php_soap.dll там не найден.

Читайте также:  Как установить windows hd color

6 ответов

Для Windows

1: Найти расширения=php_soap.dll файлы в php.ini и удалите точку с запятой(;)

2: перезагрузите сервер

Для Linux (Ubuntu)

для версии php5

на ubuntu установить php_soap on PHP7 использовать ниже команды. ссылка

для более старой версии php используйте команду ниже и перезапустите apache.

Dreamhost теперь включает SoapClient в свои сборки PHP 5.3. Вы можете переключить свою версию php в разделе настройки домена панели управления dreamhost.

У меня была та же проблема, не было расширения=php_soap.dll в моем php.Ини Но это было потому, что я скопировал php.ini из старой и предыдущей версии php (не очень хорошая идея). Я нашел dll в каталоге ext, поэтому я просто мог поместить его сам в php.Ини расширение=php_soap.файл DLL После перезапуска Apache все работали с soap:)

Они не поддерживают его, как в они не помогут вам или будут нести ответственность за вас, но вы можете установить пользовательские расширения. Для этого вам нужно сначала настройка локальной установки php 5, во время этого процесса вы можете компилировать необходимые расширения или динамически добавлять их в php.ini после того.

найдите эту строку в php.ini:

затем удалите точку с запятой ; и перезапустите сервер Apache

Источник

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

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

3 ответов:

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

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

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

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

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

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

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

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

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

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

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

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

вы бы скачать PHP источник пакет (как сжатый .tgz tarball, скажем), разверните его где-нибудь, а затем, например, под Linux, запустите сценарий настройки

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

тем не менее, если вы не знакомы с перекомпиляцией PHP,не надо. Это также требуется несколько вспомогательных библиотек, которые могут быть доступны или недоступны — freetype , gd , libjpeg , XML , expat , и так далее и тому подобное (мало того, что они установлен; они должны быть версия для разработчиков, т. е. с заголовками и так далее; в большинстве дистрибутивов, имеющих libjpeg установленных может быть недостаточно, и вам может понадобиться libjpeg-dev также).

Читайте также:  Capture from screen mac os

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

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

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

откройте терминал и вставьте: sudo apt-get install РНР-мыло.

перезапустите сервер apache2 в терминале: Service apache2 restart.

чтобы проверить, используйте свой тестовый файл php снова, чтобы быть похожим на мой в шаге 1.

Источник

How do I enable —enable-soap in php on linux?

That’s much the question. I have PHP 5.2.9 on Apache and I cannot upgrade PHP. Is there a way for me to enable SOAP in PHP 5.2.9? The PHP manual did not help at all when it said, «To enable SOAP support, configure PHP with —enable-soap .» How do I configure?

3 Answers 3

Getting SOAP working usually does not require compiling PHP from source. I would recommend trying that only as a last option.

For good measure, check to see what your phpinfo says, if anything, about SOAP extensions:

to ensure that it is the PHP extension that is missing.

Assuming you do not see anything about SOAP in the phpinfo, see what PHP SOAP packages might be available to you.

In Ubuntu/Debian you can search with:

or in RHEL/Fedora you can search with:

There are usually two PHP SOAP packages available to you, usually php-soap and php-nusoap . php-soap is typically what you get with configuring PHP with —enable-soap .

In Ubuntu/Debian you can install with:

Or in RHEL/Fedora you can install with:

After the installation, you might need to place an ini file and restart Apache.

In case that you have Ubuntu in your machine, the following steps will help you:

  1. Check first in your php testing file if you have soap (client / server)or not by using phpinfo(); and check results in the browser. In case that you have it, it will seems like the following image ( If not go to step 2 ):

Open your terminal and paste: sudo apt-get install php-soap.

Restart your apache2 server in terminal : service apache2 restart.

To check use your php test file again to be seems like mine in step 1.

As far as your question goes: no, if activating from .ini is not enough and you can’t upgrade PHP, there’s not much you can do. Some modules, but not all, can be added without recompilation ( zypper install php5-soap , yum install php-soap ). If it is not enough, try installing some PEAR class for interpreted SOAP support (NuSOAP, etc.).

In general, the double-dash —switches are designed to be used when recompiling PHP from scratch.

Читайте также:  Как правильно закрыть терминал линукс

You would download the PHP source package (as a compressed .tgz tarball, say), expand it somewhere and then, e.g. under Linux, run the configure script

The configure command used by your PHP may be shown with phpinfo() . Repeating it identical should give you an exact copy of the PHP you now have installed. Adding —enable-soap will then enable SOAP in addition to everything else.

That said, if you aren’t familiar with PHP recompilation, don’t do it. It also requires several ancillary libraries that you might, or might not, have available — freetype , gd , libjpeg , XML , expat , and so on and so forth (it’s not enough they are installed; they must be a developer version, i.e. with headers and so on; in most distributions, having libjpeg installed might not be enough, and you might need libjpeg-dev also).

I have to keep a separate virtual machine with everything installed for my recompilation purposes.

Источник

Работа с веб-серверами на php посредством SOAP

Не буду останавливаться на вопросе, что такое веб-сервисы и зачем они нужны. В сети очень много статей на эту тему. Просто постараюсь вкратце показать, каким простым способом возможно создание клиента к любому веб-сервису на php.

Для использования SOAP в php необходимо подключить модуль SOAP (входит в дистрибутив php5). Под windows это делается просто – необходимо дописать (именно дописать, так как эта строка там не просто закомментирована, она отсутствует вообще) в php.ini:
extension=php_soap.dll

Не забудьте перезапустить сервер, если php у вас установлен как модуль.

Создание SOAP-клиента по WSDL-документу

Создание SOAP-клиента обычно происходит по WSDL-документу, который представляет собой XML-документ в определенном формате, полностью описывающий тот или иной веб-сервис. За подробностями по поводу WSDL – отправляю Вас на сайт консорциума W3C — www.w3.org/TR/2005/WD-wsdl20-soap11-binding-20050510.

Главное же, что необходимо знать для того, чтобы построить клиента к веб-сервису – это знать URL его WSDL-документа.
Для примера возьмем веб-сервис «Currency Exchange Rate» от xmethods.com. Адрес этого веб-сервиса, который позволяет получать курсы валют в режиме онлайн — www.xmethods.net/sd/2001/CurrencyExchangeService.wsdl.

Второй важный момент – из описания веб-сервиса необходимо получить информацию о том, какие методы этот сервис предоставляет, и какие параметры мы должны передавать ему в качестве входных значений (очень похоже на вызов обычной функции php или метода класса). Обычно эта информация содержится в описании сервиса на его сайте. Наш веб-сервис для получения курса валют предоставляет метод getRate(), которому в качестве аргументов передаются коды валют.

И последнее – важно знать, что ожидать в качестве ответа: сколько значений, какого типа и т.п. Это также можно получить из описания.
А в результате код получается очень простым и компактным, почти элементарным:

echo ‘Текущий курс доллара: ’, $result, ‘ рублей’;
?>

Как видно из кода в конструктор класса SoapClient необходимо передать URL WSDL-документа и получить объект для работы с нужным веб-сервисом. Затем вызывается метод этого объекта, имя которого совпадает с именем самого метода веб-сервиса. Возвращает же этот метод желаемый нами результат.

Итак, этот простой пример иллюстрирует нам принцип построения SOAP-клиента для веб-сервисов на php. Однако в реальном приложении еще о многом придется позаботиться, в частности о том, что в момент обращения к веб-сервису он может быть временно недоступен или возвращать ошибку. Явно напрашивается использование блока try/catch/throw 🙂

Источник

Оцените статью