2016-11-29 57 views
3

我正在从php5.6和symfony2 resp升级到php7和symfony3。我有一些使用soap来请求第三方apis的symfony控制台命令。分段故障php7 symfony cli命令使用肥皂

升级到php7和php7.0-soap后,但命令失败并出现分段错误。我试着用gdb进行调试,下面是跟踪。看起来像这是php7.0-soap的问题?解决办法是什么 ?

Program received signal SIGSEGV, Segmentation fault. 
0x00005555557bc4db in zend_hash_destroy() 
(gdb) bt 
#0 0x00005555557bc4db in zend_hash_destroy() 
#1 0x00007fffecbbe141 in delete_type_persistent() from /usr/lib/php/20151012/soap.so 
#2 0x00005555557bc5dd in zend_hash_destroy() 
#3 0x00007fffecbc55f1 in ??() from /usr/lib/php/20151012/soap.so 
#4 0x00007fffecbc565f in ??() from /usr/lib/php/20151012/soap.so 
#5 0x00005555557bc4d2 in zend_hash_destroy() 
#6 0x00007fffecb95f0b in zm_shutdown_soap() from /usr/lib/php/20151012/soap.so 
#7 0x00005555557b25f3 in module_destructor() 
#8 0x00005555557ab08c in ??() 
#9 0x00005555557bd048 in zend_hash_graceful_reverse_destroy() 
#10 0x00005555557ac055 in zend_shutdown() 
#11 0x000055555574fb3b in php_module_shutdown() 
#12 0x000055555563d796 in main() 
+0

我得到了类似的赛格故障: '计划接收信号SIGSEGV,SEGM入侵故障。 0x00007f85375094bb在zend_hash_destroy() 从/etc/httpd/modules/libphp-7.0.so (GDB)回溯 #0 0x00007f85375094bb在zend_hash_destroy() 从/etc/httpd/modules/libphp-7.0.so #1 0x00007f852e356a3e在?? ()从/usr/lib64/php/7.0/modules/soap.so #2 0x00007f85375095bd在zend_hash_destroy() 从/ etc/httpd的/模块/中的libphp-7.0.so' (和更多) 我还发现这个:https://bugs.php.net/bug.php?id = 71931 – Ben

回答

3

在PHP7不能使用WSDL_CACHE_MEMORY(或WSDL_CACHE_BOTH)暂且:https://bugs.php.net/bug.php?id=71931

使用WSDL_CACHE_DISK通过,而不是设置在php.inisoap.wsdl_cache,或者 - 如果你没有访问php.ini - 使用ini_set

ini_set('soap.wsdl_cache', WSDL_CACHE_DISK);