我有AWS EC2,Apache服务器设置。所有的网站页面都工作,除了两个地方,我起诉CURL。以下指针根据这个问题搜索在线,这是预期的工作:
CURL显示在phpinfo()中。CURL命令可以访问并运行。Apache 2确实安装了CURL。CLI中的curl命令工作正常。(curl http://localhost和curl www.google.com)两者都工作正常。
当我运行下面的函数时,url在浏览器$url中运行时,返回预期的数据。但是当我从PHP运行时,没有一个echo命令返回值。而且,值似乎是空的。
函数get_patients(){ $主机名=文件获取内容('http://169.254.169.254/latest/meta-data/public-hostname');文件夹名称'/folder1/app1.php';
//echo $url;
///$url .= urlencode($query);//.'&key='.$key;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
//echo $curl;
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT , 400);
curl_setopt($curl, CURLOPT_TIMEOUT, 400);
$data = curl_exec($curl);
curl_close($curl);
//decoding request
$result = json_decode($data, true);
//print_r( $data);
return $result;
}
这是第一个函数,大多数API都依赖于它。上面的这个php文件位于var/www/html/folder 1。当我访问我试图在浏览器中访问的主API时,$hostname.'/folder1/app1.php?all',确实返回了托管在本地apache服务器甚至远程域主机服务器上的数据。它只是不能与AWS EC2一起工作。
3条答案
按热度按时间oprakyz71#
谢谢你的回复。经过不断的故障排除,我得到了这个问题的解决。需要在php.ini中修改apache服务器配置中的配置,只要确保设置和版本在服务器上的PHP5和Apache 2文件夹中是相同的。另外,PHP5必须安装PHP5-libcurl,它已经在我的服务器上了。谢谢大家的迅速React。
xfb7svmp2#
我昨天回答了一个类似的curl问题,我可以在那里复制/调试。你的代码有点通用,不知道远程服务器地址,我可以建议你调试你的curl请求。
请参阅GET Request可与python“requests”库配合使用,但不能与curl配合使用
您需要检查curl是否返回任何错误并进行调试,如下所示
zfycwa2u3#
我有同样的问题,但解决后,安装php8.1-curl。