Apache x86 (32бита), php 7(x86 32 бита) ошибка php_soap.dll
Вводная:
Локальный веб-сервер на Windows 7 64 бита, apache 2.29 32 бита, Php 7 (все версии 0,1,2 32 бита). Подключение php как модуля apache. При обращении к странице Bitrix сыпет ошибки:
Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: httpd.exe
Версия приложения: 2.4.29.0
Отметка времени приложения: 59fc34e9
Имя модуля с ошибкой: php_soap.dll
Версия модуля с ошибкой: 7.2.1.0
Отметка времени модуля с ошибкой: 5a4db3d1
Код исключения: c0000005
Смещение исключения: 0000105d
Версия ОС: 6.1.7601.2.1.0.256.1
Код языка: 1049
Дополнительные сведения 1: 0a9e
Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789
Дополнительные сведения 3: 0a9e
Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789
Ознакомьтесь с заявлением о конфиденциальности в Интернете:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0419
Если заявление о конфиденциальности в Интернете недоступно, ознакомьтесь с его локальным вариантом:
C:\Windows\system32\ru-RU\erofflps.txt
Собственно решением может быть отключение soap модуля из php.ini. Однако он может потребоваться в будущем. Да и нужно заставить работать то, что должно работать. Тем более, что в принципе Bitrix вроде soap не требует, а ошибка валится при обращении именно к Битриксу, простенькие скрипты для теста запускал и всё работает.
Решение простое - взял php_soap.dll из php 7 для 64 бита. Отсюда правда следует, что надо бы полностью переползти на 64 бита, но пока уже лень стало этим заниматься. Прошлый раз влезал лет 5 назад.
Далее пока искал решение проблемы встречал, что ошибка в модуле может случаться при использовании разных версий php на одной машине(это мой вариант тоже, но ошибка у меня не из-за этого была) и сопутствующем неочищенном кеше WSDL soap. Поэтому надо очищать кеш. Ищем директиву soap.wsdl_cache_enabled и пишем 0:
soap.wsdl_cache_enabled=0
PHP разных версий качаем тут http://windows.php.net/downloads/releases/
Заметили ошибку, можете подсказать еще что-то? - Обращаемся сюда