Как поставить SOAP на BitrixVm

Что такое SOAP и зачем он нужен для Битрикс

SOAP (Simple Object Access Protocol) — протокол обмена структурированными сообщениями в распределённых вычислительных системах. В контексте 1С-Битрикс и Bitrix24 SOAP используется для интеграции с внешними системами: 1С, CRM-платформами, банковскими сервисами, государственными порталами и другими системами, которые предоставляют веб-сервисы через WSDL.

На стандартном BitrixVM (виртуальная машина для разработки под Битрикс) расширение php-soap не всегда установлено или активно. Это приводит к ошибке вида Class 'SoapClient' not found или Call to undefined function soap_encode() при попытке обратиться к внешнему SOAP-сервису. В этой статье разберём, как установить и активировать SOAP для PHP на BitrixVM.

Проверка: включён ли SOAP в PHP

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

Если в выводе есть строка soap — расширение загружено. Если вывод пустой — нужно установить или подключить расширение.

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

В секции поиска найдите «soap» — если блок с информацией о расширении отсутствует, SOAP не активирован.

Установка php-soap на CentOS/RHEL (для BitrixVM)

BitrixVM базируется на CentOS (7 или 8 stream), поэтому для установки используется пакетный менеджер yum или dnf. Определите версию PHP, которую использует ваш сервер:

Затем установите соответствующий пакет. Для PHP 7.4:

Для PHP 8.0/8.1/8.2 (если установлены через репозиторий remi или аналогичный):

После установки перезапустите веб-сервер:

Установка на Ubuntu/Debian

Если ваша среда основана на Ubuntu или Debian (например, вы используете не официальный BitrixVM, а собственный сервер), команда установки будет другой:

Для конкретной версии PHP (например, 8.1):

После установки активируйте расширение и перезапустите PHP-FPM или Apache:

Настройка в BitrixVM через конфигурационный файл

Если пакет установлен, но SOAP всё равно не загружается, проверьте конфигурационный файл расширения. В BitrixVM он обычно находится здесь:

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

Если файл пустой или строка отсутствует — добавьте её вручную:

После изменения конфигурации обязательно перезапустите Apache:

Проверка что SOAP работает

Для проверки создайте два файла в корне сайта. Первый — серверная часть (test.php):

Второй — клиентская часть (test2.php):

Откройте в браузере:

Если видите Hello, World — SOAP работает корректно.

Типичные ошибки и их решение

Рассмотрим наиболее частые проблемы при настройке SOAP на BitrixVM:

  • Class ‘SoapClient’ not found — расширение не установлено или не загружается. Проверьте наличие строки в .ini-файле и перезапустите Apache.
  • SOAP-ERROR: Parsing WSDL — проблема с доступом к WSDL-файлу внешнего сервиса. Проверьте настройки firewall и разрешение исходящих соединений для PHP.
  • Could not connect to host — сервер не может установить соединение с удалённым SOAP-эндпоинтом. Проверьте allow_url_fopen в php.ini: должно быть включено (On).
  • SSL-ошибки при подключении — если внешний сервис использует самоподписанный сертификат, добавьте в параметры клиента опцию обхода проверки (только для тестирования): 'stream_context' => stream_context_create(['ssl' => ['verify_peer' => false]]).

После успешной установки SOAP PHP-расширения Битрикс сможет полноценно работать с внешними веб-сервисами, обменом данными с 1С через веб-сервисы и любыми WSDL-совместимыми API.