我正在尝试从 php5.6 和 symfony2 升级到 php7 和 symfony3。我有一些使用 soap 请求第三方 api 的 symfony 控制台命令。
升级到 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 ()
最佳答案
暂时不能在 PHP7 中使用 WSDL_CACHE_MEMORY
(或 WSDL_CACHE_BOTH
):https://bugs.php.net/bug.php?id=71931
通过在 php.ini
中设置 soap.wsdl_cache
来使用 WSDL_CACHE_DISK
,或者 - 如果您无权访问 php.ini
- 使用 ini_set
:
ini_set('soap.wsdl_cache', WSDL_CACHE_DISK);
关于soap - 使用soap的段错误php7 symfony cli命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40866542/