2011-12-18 127 views
2

我使用下面的代码来获得一个cron列表,但只有我得到的东西是一个空白页。同样,当我在2083年之前替换2087端口时,输出为403 HTTP状态的{“data”:{“reason”:“拒绝访问”,“result”:“0”},“type”:“text”}。你能帮我解决这个问题吗?WHM/Cpanel API Cron :: listcron请求使用cURL

  $user = $_ENV['REMOTE_USER'] ? $_ENV['REMOTE_USER'] : 'root'; 
      $accessHash = $this->getLocalAccessHash(); 
      if($accessHash === FALSE) return FALSE; 

      $url = "https://127.0.0.1:2087/json-api/cpanel?user=$user&cpanel_jsonapi_module=Cron&cpanel_jsonapi_func=listcron&cpanel_jsonapi_version=2"; 
      $ch = curl_init(); 
      curl_setopt($ch, CURLOPT_VERBOSE, 1); 
      if($fp = fopen('curl_http.txt', "wa")) curl_setopt($ch, CURLOPT_STDERR, $fp); 
      curl_setopt($ch, CURLOPT_URL, $url); 
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
      //curl_setopt($ch, CURLOPT_POST, 1); 
      curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: WHM $user:$accessHash")); 
      $cronlistJSON = curl_exec($ch); 
      $ci = curl_getinfo($ch); 
      curl_close($ch); 
      if($fp) fclose($fp); 

      print_r($ci); 
      die($cronlistJSON); 

回答

2
  • 检查您的接入哈希是正确的(但我猜你已经这样做了)
  • 只能登录到根/经销商账户与访问散列法
  • 贵访问哈希可能包含任何空格?只要剥去它像:

    $accessHash = preg_replace('/\s/', '', $accessHash); 
    
  • 可选:用它做这种事情更容易的PHP cPanel-API wrapper