msgbartop
msgbarbottom

05 七 10 在WinXP下配置PHP 5.2.13出现的囧事

今天需要在一个WinXP下配置一个PHP 5.2.13的开发环境,开始图省事,安装IIS以后,下载一个PHPOpt4IIS安装,结果装完打开localhost查看phpinfo(),报错:“您未被授权查看该页”和“HTTP 错误 401.3 - 未经授权:访问由于 ACL 对所请求资源的设置被拒绝。”
很诡异的错误信息。
一开始以为是Web目录的权限问题,反复修改IUSR用户的权限,甚至连这个用户的密码都修改和同步了还是没变化…………
重新GG、BAIDU了下,有人提到这个可能性
“翻了好多网站,看到有说为了安全,把windows目录去掉了user组,asp.net就无法正常使用了,想想不会是是php.exe php.ini php5isapi.dll这几个文件没有users的问题导致吧”
抱着试一试的心理打开Windows\System32目录下的所有PHP Dlls的属性,切换到“安全”选项卡,提示这些文件之间权限不一致,是否清除到默认,选择是,再次查看,发现OK了。
iisreset
打开localhost查看phpinfo(),Oh YEAH!!

=============不怎么华丽的分割线=============

配置好PHP后发现无论怎么设置extension_dir都无效,各种扩展都无法被加载,继续囧……
突然发现用的是NTS(Non-Thread Safe)的版本,马上换一个TS的试一下。
好了。
继续囧……
Tags - , , , , , , , , ,

05 七 10 WSF/PHP调用带有WS-Security支持的Web Service时的注意事项

目前在PHP中调用带有WS-Security支持的Web Service解决方案还是比较少的,WSF/PHP是一个不错的选择,官方首页为http://wso2.org/projects/wsf/php,下面就介绍下在运用WSF/PHP的时候需要注意的一些地方

1、WSF/PHP【WSO2 Web Services Framework for PHP】 是WSO2.ORG提供的专门针对PHP调用Web Service的一个优秀框架,使用非常简单;但是WSO2不仅仅提供针对PHP的ws框架,而且还对其他很多中语言提供开发框架,比如基于Spring、Perl、Ruby……,除此之外还提供很多其他框架和培训服务,具体可查询wso2.org和wso2.com;
2、WSF/PHP模块的安装需要很多其他的支持包,在windows下面体现为一些dll文件,主要包括Libxml2、iconv、Openssl、zlib,而不仅仅是Libxml2【GNOME XML Library】;安装过程中需要将这些依赖dll全部都集中到wsf_c/lib/目录中;这些依赖包可以到http://www.zlatkovic.com/pub/libxml/下载,下载完成之后对各压缩包解压,dll文件一般位于/bin/目录中;
3、WSF所依赖的这些dll文件一定需要copy到/windows/system32/中才行,否则加载模块不成功;这点和官方文档中说的直接将wsf_c/lib/加入到path中即可是不一致的;当然这点可能有其他方式可以解决,因为我不精通PHP,但是和一些同事沟通过,但没结果;
4、验证是否正常加载了WSF模块,只用php -m命令查看列表是不够的,即时WSF模块没有加载成功,但是php.ini中设置了WSF模块,那php -m的列表中也会包括WSF;最保险的做法是查看服务器日志比如Apache;
5、在申明WSSecurityToken实例的时候,参数receiverCertificate是用来加密Soap消息的,而不是用来验证服务端返回的签名信息的,所以若只是需要签名,那该参数无需设置;WSF/PHP目前还没有提供验证服务端返回的签名信息功能的;
6、WSF/PHP调用WS时默认使用SOAP 1.2协议,这可能会对某些服务端ws调用时出错,若需要设置使用SOAP版本,则可以在申请WSClient实例时设置参数"useSOAP" => "1.1"实现


Tags - , , , , ,