2016-11-29 42 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);