2016-03-02 102 views
-1

我正在用PHP开发一个小型网站。该网站正在发送REST curl请求以从后端系统获取和发布数据。PHP:POST REST CALL不能在Redhat的AMAZON EC2上工作

我开始在我的电脑上使用LAMP环境开发这个网站。 我所有的CURL调用在LAMP环境中都运行良好。

由于我不得不把这个网站提供给某个人,所以我把它推到了AMAZON EC2上,在一个Redhat实例上,我安装了Apache2和Php5。

我的问题是,虽然GET调用在亚马逊上工作,但我所有的POST调用都没有。看起来,后端系统不会收到POST调用,并且不会返回任何消息。

这是我使用(这又是工作,从我的本地罚款)的PHP代码的样本:

$urlwebbehavior = 'https://'.$domain.'/api/inbound/activity?access_token='.$tokenServer.'&member_id='.$memberid.'&type=web_behavior&action_type=Page%20View&page='.$pageurl; 

$ch5 = curl_init(); 

curl_setopt($ch5, CURLOPT_URL, $urlwebbehavior); 
curl_setopt($ch5, CURLOPT_POST, true); 
curl_setopt($ch5, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch5, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch5, CURLOPT_HTTPHEADER, array('Accept:application/vnd.backend-v1+json')); 

$result5 = curl_exec($ch5); 
$curlErrno = curl_errno($ch5); 

if($curlErrno){ 
    $curlError = curl_error($ch5); 

    throw new Exception($curlError); 
} 

curl_close($ch5); 

我首先想到的是与EC2的一个问题。我通过使用来自Amazon的命令行的等效curl请求进行测试,并且它工作正常。所以我认为EC2不是问题。 它可能是Apache配置或其他东西。

在此先感谢您的帮助。

Baocrazy

+0

是的。我直接从amazon实例运行curl命令,它工作正常。此外,网站代码还包含一些使用curl的GET调用。 – Baocrazy

+0

var_dump(extension_loaded('curl'));返回bool(true)。 – Baocrazy

+0

var_dump $ result5返回字符串(0)“” – Baocrazy

回答

0

你是不是在发送数据后,而把他们作为查询字符串(获取)。而不是发送他们在查询字符串,发送它们如下:

curl_setopt($ch5, CURLOPT_POSTFIELDS, $data);