简体   繁体   English

WSO2 WSF / PHP安装问题(需要C开发帮助)

[英]WSO2 WSF/PHP installation problems (C devs help needed)

I'm trying to install WSO2 WSF/PHP extension to use SOAP with WSSE. 我正在尝试安装WSO2 WSF / PHP扩展以将SOAP与WSSE一起使用。 I was having problems when I was compiling sources, I needed to checkout trunk (instead of tag 2.1) from their repository, couple of times I fixed php 5.4 compatibility issues in source codes, finally everything compiled successfully 我在编译源代码时遇到问题,我需要从他们的存储库中检出trunk(而不是标签2.1),有几次我在源代码中修复了php 5.4兼容性问题,最后编译成功

But when I try to enable this extension I get an error: 但是当我尝试启用此扩展时,我收到一个错误:

user@centos:~/wsf$ php -i | grep "wsf"                                                                                     
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525+lfs/wsf.so' - /usr/lib/php5/20100525+lfs/wsf.so: undefined symbol: rampart_context_set_prv_key in Unknown on line 0
/etc/php5/cli/conf.d/20-wsf.ini,                                                                                                                     
PWD => /home/user/wsf                                                                                                                                
_SERVER["PWD"] => /home/user/wsf

I did grep on sources and found this: 我在源上做了grep并发现了这个:

user@centos:~/wsf$ grep -r "rampart_context_set_prv_key" .                                                                         
./src/.svn/text-base/wsf_policy.c.svn-base:             rampart_context_set_prv_key(rampart_context, env, Z_STRVAL_PP(token_val));                   
./src/.svn/text-base/wsf_policy.c.svn-base:     if (rampart_context_set_prv_key_type (rampart_context, env, AXIS2_KEY_TYPE_PEM) == AXIS2_SUCCESS)    
Binary file ./src/modules/wsf.so matches
./src/wsf_policy.c:             rampart_context_set_prv_key(rampart_context, env, Z_STRVAL_PP(token_val));                                           
./src/wsf_policy.c:     if (rampart_context_set_prv_key_type (rampart_context, env, AXIS2_KEY_TYPE_PEM) == AXIS2_SUCCESS)                            
Binary file ./src/.libs/wsf.soT matches
Binary file ./src/.libs/wsf.so matches
Binary file ./src/.libs/wsf_policy.o matches
Binary file ./wsf_c/rampartc/src/util/.libs/librampart.so.0 matches
Binary file ./wsf_c/rampartc/src/util/.libs/librampart.a matches
Binary file ./wsf_c/rampartc/src/util/.libs/librampart.so.0.3.0 matches
Binary file ./wsf_c/rampartc/src/util/.libs/rampart_context.o matches
Binary file ./wsf_c/rampartc/src/util/.libs/librampart.so matches
./wsf_c/rampartc/src/util/rampart_context.c:rampart_context_set_prv_key(rampart_context_t *rampart_context,                                          
./wsf_c/rampartc/src/util/rampart_context.c:rampart_context_set_prv_key_type(rampart_context_t *rampart_context,                                     
./wsf_c/rampartc/src/util/rampart_context.c:rampart_context_set_prv_key_password(rampart_context_t *rampart_context,                                 
Binary file ./wsf_c/rampartc/src/util/rampart_context.o matches
./wsf_c/rampartc/include/rampart_context.h:    rampart_context_set_prv_key(rampart_context_t *rampart_context,                                       
./wsf_c/rampartc/include/rampart_context.h:    rampart_context_set_prv_key_type(rampart_context_t *rampart_context,                                  
./wsf_c/rampartc/include/rampart_context.h:    rampart_context_set_prv_key_password(rampart_context_t *rampart_context,

So basically I found only 1 file, wsf_policy.c which uses rampart_context_set_prv_key, but includes looks correct, and I don't know how to solve it. 所以基本上我只发现了一个文件,wsf_policy.c使用了rampart_context_set_prv_key,但包括看起来正确,我不知道如何解决它。 Any ideas? 有任何想法吗?

Same Problem. 同样的问题。 Solved in the same way as in Error when trying to run security examples in wsf/php 2.1 : 尝试在wsf / php 2.1中运行安全示例时 ,以与Error中相同的方式解决:

sudo apt-get install gcc-4.4

and then configuring wsf/php by running 然后通过运行配置wsf / php

./configure CC=gcc-4.4

Follow the rest of the normal installation steps and it should work. 按照其他正常的安装步骤进行操作。

You can also check the wsf.so library to see if it has the rampart libs linked in it by doing 您还可以检查wsf.so库以查看它是否具有链接的垒垒库

ldd /usr/lib/php5/20090626/wsf.so

Also, just in case you haven't found it yet, here are the steps to compile WSF using PHP 5.4 https://wso2.org/jira/browse/WSFPHP-477 此外,如果您还没有找到它,以下是使用PHP 5.4编译WSF的步骤https://wso2.org/jira/browse/WSFPHP-477

在我的安装中,符号“rampart_context_set_prv_key”在库$ {wsf.home} /lib/librampart.so中定义,可以从wsf.so直接访问,感谢RPATH变量。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM