php webservice交互在nginx上参数传不过去
IT海明威 2013-11-20 04:02:32 各位高手有遇到这种情况吗?就是PHP与其他语言的接口问题
应用php soapserver wsdl
clent客户端访问 nginx 服务的服务端值传不过去,访问自己电脑的apache的就好使。
服务器上是nginx的服务器,请问这是什么问题啊?最好详细说说,我是这方面的小白
这是代码
客户端:
$client = new SoapClient("http://192.168.1.235/api/api.php?wsdl");
$arr='55555';
print_r($client->say($arr));
echo "<br />";
print_r($client->run());
echo "<br />";
服务端:
require_once("person.class.php");
$video_stream = array('uri' =>'http://192.168.1.25/vms/api/api.php','encoding'=>'utf8');
$vms_server =new SoapServer('person.wsdl',$video_stream);
$vms_server->setClass("person");//注册person类的所有方法
$vms_server->handle();//处理请求
类:
class person
{
public function say($arr)
{
$filename="1.txt";
$file=file_put_contents($filename, $arr,FILE_APPEND);
if($arr){
return true;
}else{
return false;
}
}
public function run()
{
return("i'm running.");
}
}
我的开发环境是nginx+php,准备作一个soap的实验,soapclient和soapserver都是在我的开发机上,用soapclient访问soapserver的时候,总是返回504错误,相同的代码放到apache+php_module的环境下没有问题。
nginx的错误日志显示,client和server的错误都是fastcgi超时,我一度怀疑是soapserver的问题,soapserver超时不响应,导致了soapclient的超时。
但是我用cli模式执行client,server能正常返回,说明不是soapserver的问题。
用nginx下的client访问apache上的server,正常
用apache下的client访问nginx上的server,正常