PHP:发出curl请求

PHP:发出curl请求,php,Php,我这里有个问题 <?php include('smsconfig.php'); include("SMTPconfig.php"); include("dbconnect.php"); define("SITE_URL", "http://gf2fyu.blah.com"); $GLOBAL_REST_URL = "gf2fyu.domain.com/organization/"; $he

我这里有个问题

<?php 
        include('smsconfig.php');
        include("SMTPconfig.php");
        include("dbconnect.php");

        define("SITE_URL", "http://gf2fyu.blah.com");
        $GLOBAL_REST_URL = "gf2fyu.domain.com/organization/";

        $headers = array(
                        'X-MYDOMAIN-Secret:VuFlRQv40SUp0y1AXflMD0hWw8ZiiTu08f9ZXc0AYFc=',
                        'Content-Type: application/json; charset=UTF-8',
                        'Accept: application/json; charset=UTF-8',
        );
        //$json = array2json($ages);
        $curl_handle=curl_init();
        curl_setopt($curl_handle,CURLOPT_URL,$GLOBAL_REST_URL);
        curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
    //    curl_setopt($curl_handle, CURLOPT_POSTFIELDS,$json);
        curl_setopt($curl_handle, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
        $buffer = curl_exec($curl_handle);
        curl_close($curl_handle);
        $getit =  json_decode($buffer, true);
        $smskey =  substr(number_format(time() * rand(),0,'',''),0,5);
        print_r($getit);
?>

如果我在本地服务器和mozila REST上运行上述代码,那么我可以很好地使用这些代码

但每当我试图将此代码放到生产版本时

此代码未命中rest服务器

请告诉我这里有什么问题

我在MOzila中使用了相同的标题,它也工作得很好


我正在运行Nginx,所有的东西都在评论中,但是让我们把它按顺序写下来

1) 服务器上的PHP中可能没有安装Curl。要找到答案,请打开错误报告(或检查错误日志)。或者,更可靠的方法是检查函数。将以下内容添加到代码中(在includes之后)

解决方案:您可以尝试使用file\u get\u内容,但如注释中所述,通常不建议使用该方法,因为它也被禁用。如果需要传递头,可以在“上下文”(调用中的第三个参数-检查手册)中进行传递。更好的选择是安装curl(或者获得支持安装它)

2) 可能已启用防火墙。您可以通过选中()并将结果转储到屏幕(用于测试)来确定这一点。这将告诉您它是否被阻止或通过。有关更多信息,请参阅手册(如上链接)

3) 您的代码中可能存在导致问题的错误。检查错误日志,或使用打开错误报告

error_reporting(E_ALL);
ini_set('display_errors', 'on');

不过,请记住在最终投入生产时删除这些行。

许多服务器都禁用了curl。您是否尝试过
文件\u获取\u内容()
?是否引发了任何异常?您认为“它没有命中服务器”是什么意思?如果无法连接到服务器,则代码没有意义。如果您正在点击页面,但页面显示为空白,很可能是因为
curl
被禁用,而您得到了一个错误。试着对
curl
代码进行注释,看看页面是否加载。@Dutchie432我没有发现用
file\u get\u Contents
替换
curl
是个好主意(很多服务器都有
allow\u url\u wrappers
禁用)。@Vyktor,用户可以找到一个带有
curl
:)的主机。我提供了一个测试的替代方案。您给我上了一堂调试的好课,谢谢,但实际上我的问题与我的nginx服务器有关
error_reporting(E_ALL);
ini_set('display_errors', 'on');