2011-12-18 3 views
2

Я использую код ниже, чтобы получить список cron, но только я получаю пустую страницу. Также, когда я заменяю порт 2087 на 2083, вывод: {«data»: {«reason»: «Access denied», «result»: «0»}, «type»: «text»} с статусом HTTP 403. Можете ли вы помочь мне исправить эту проблему?WHM/Cpanel API Cron :: listcron request using 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 это делает такие вещи намного проще.