各位高手有遇到这种情况吗?就是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,正常
$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,正常
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货