PHPLaravel,Apache服务器:“;错误号:0。Curl错误:无法连接到my.website.com:443;“正在进行操作”;

PHPLaravel,Apache服务器:“;错误号:0。Curl错误:无法连接到my.website.com:443;“正在进行操作”;,php,laravel,curl,server,operation,Php,Laravel,Curl,Server,Operation,我有一个带有centos发行版的apache服务器,我使用git开发了一个PHP Laravel项目。它使用cURL请求获取和执行从端点获取的数据。当我在本地虚拟机上运行时,它工作得非常好。当我在我的电脑上运行它时 这是我的代码,请注意cURL请求: //NOTE: $this->headers = ["Authorization: Bearer " . myServerAccessToken]; //sets URL and $curl public function getAdmi

我有一个带有centos发行版的apache服务器,我使用git开发了一个PHP Laravel项目。它使用cURL请求获取和执行从端点获取的数据。当我在本地虚拟机上运行时,它工作得非常好。当我在我的电脑上运行它时

这是我的代码,请注意cURL请求:

//NOTE: $this->headers = ["Authorization: Bearer " . myServerAccessToken];
 //sets URL and $curl
 public function getAdmins() {
   $adminsURL = "https://my.test.instructure.com/api/v1/accounts/1/admins?per_page=20";
   $curl = curl_init();

   self::requestCurl($curl, $adminsURL, $this->headers);
   $resp = curl_exec($curl);
   //dd($resp); //shows false
   return self::setHeaders($curl);
 }

  //cURL request function: used to set the value of $curl as seen in other functions
 public function requestCurl($curl, $url, $headers) {
     return curl_setopt_array($curl, [
       CURLOPT_RETURNTRANSFER => TRUE,
       CURLINFO_HEADER_OUT => TRUE,
       CURLOPT_URL => $url,
       CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
       CURLOPT_SSL_VERIFYPEER => TRUE,
       CURLOPT_HTTPHEADER => $headers,
       CURLOPT_CUSTOMREQUEST => 'GET',
       CURLOPT_FOLLOWLOCATION => TRUE,
       CURLOPT_MAXREDIRS => 10, 
       CURLOPT_HEADER => TRUE
     ]);
   }


//returns "curl errno: 0. Failed to connect to my.test.instructure.com:443; Operation now in progress
 //gets the data from a successful curl request, and returns said data
public function setHeaders($curl) {
  echo "<h1>SetHeaders()</h1>";
  $resp = curl_exec($curl);
  $header_size = curl_getinfo( $curl, CURLINFO_HEADER_SIZE );
  $header = substr( $resp, 0, $header_size );
  $body = substr( $resp, $header_size); //$header_size
  $code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
  if (curl_getinfo($curl, CURLINFO_HTTP_CODE) != 200) {
    echo "<h3>Curl errno: " . curl_getinfo($curl, CURLINFO_HTTP_CODE) . "</h3>";
    echo "<h3>Curl error(): " . curl_error($curl) . "</h3>";
    dd($body);
    return null; 
  }
  $data = json_decode($body, true);
  return $data;
}
//注意:$this->headers=[“Authorization:Bearer”.myServerAccessToken];
//设置URL和$curl
公共函数getAdmins(){
$adminsURL=”https://my.test.instructure.com/api/v1/accounts/1/admins?per_page=20";
$curl=curl_init();
self::requestCurl($curl,$adminsURL,$this->headers);
$resp=curl\u exec($curl);
//dd($resp);//显示false
返回self::setHeaders($curl);
}
//cURL请求函数:用于设置$cURL的值,如其他函数所示
公共函数requestCurl($curl,$url,$headers){
返回curl_setopt_数组($curl[
CURLOPT_RETURNTRANSFER=>TRUE,
CURLINFO_HEADER_OUT=>TRUE,
CURLOPT_URL=>$URL,
CURLOPT_HTTP_VERSION=>CURL_HTTP_VERSION_1_1,
CURLOPT_SSL_VERIFYPEER=>TRUE,
CURLOPT_HTTPHEADER=>$headers,
CURLOPT_CUSTOMREQUEST=>“GET”,
CURLOPT_FOLLOWLOCATION=>TRUE,
CURLOPT_MAXREDIRS=>10,
CURLOPT_头=>TRUE
]);
}
//返回“curl errno:0。无法连接到my.test.instructure.com:443;操作正在进行。”
//从成功的curl请求中获取数据,并返回所述数据
公共函数setHeaders($curl){
回显“SetHeaders()”;
$resp=curl\u exec($curl);
$header\u size=curl\u getinfo($curl,CURLINFO\u header\u size);
$header=substr($resp,0,$header\u size);
$body=substr($resp,$header_size);//$header_size
$code=curl\u getinfo($curl,CURLINFO\u HTTP\u code);
if(curl\u getinfo($curl,CURLINFO\u HTTP\u代码)!=200){
echo“Curl errno:”.Curl_getinfo($Curl,CURLINFO_HTTP_代码)。”;
回显“Curl error():”.Curl_error($Curl)。”;
dd(机构);
返回null;
}
$data=json_decode($body,true);
返回$data;
}
我可以在我的本地机器上运行此代码,它工作得非常好。没有任何抱怨,完全成功。但当我在带有centos发行版的apache服务器上运行此代码时,它会崩溃。我得到的是以下输出:

“SetHeaders()”
“卷曲错误号:0”
“Curl error():未能连接到my.test.instructure.com:443;行动正在进行中”

“”[dd($body)返回一个空字符串]

====

我查找了currlerrno:0和curl error 443,但是 我所看到的与我的问题类似的最接近的问题是以下页面:

但据我所知,我的代码中已经有了建议的解决方案(CURLOPT_FOLLOWLOCATION=>TRUE)


我怀疑问题出在服务器本身,但我不知道该怎么说。我已经查看了服务器上的/etc/hosts文件夹,但我被告知它配置正确。考虑到这一点,我还可以尝试解决什么问题?

问题是我的服务器网络有一个代理集。我能够绕过它by向我的curl_setopt_数组请求添加两行:

       public function requestCurl($curl, $url, $headers) {
           return curl_setopt_array($curl, [
             CURLOPT_RETURNTRANSFER => TRUE,
             CURLINFO_HEADER_OUT => TRUE,
             CURLOPT_URL => $url,
             CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
             CURLOPT_SSL_VERIFYPEER => TRUE,
             CURLOPT_HTTPHEADER => $headers,
             CURLOPT_CUSTOMREQUEST => 'GET',
             CURLOPT_PROXY => "https://my.proxy.url", //your proxy url
             CURLOPT_PROXYPORT => "my_proxy_port_number", // e.g 3333

             CURLOPT_FOLLOWLOCATION => TRUE,
             CURLOPT_MAXREDIRS => 10, 
             CURLOPT_HEADER => TRUE
           ]);
         }