2

以下のコードを使用してcronリストを取得していますが、取得するのは空白のページだけです。また、ポート2087を2083に置き換えると、出力は{"data":{"reason": "Access denied"、 "result": "0"}、 "type":"text"}で403HTTPステータスになります。この問題の修正を手伝ってもらえますか?

            $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);  
4

1 に答える 1

2
  • アクセスハッシュが正しいかどうかを確認します(ただし、すでにそれを行っていると思います)
  • アクセスハッシュ方式でのみroot/reseller-accountsにログインできます
  • アクセスハッシュに空白が含まれている可能性がありますか?そのようにそれを取り除くだけです:

    $accessHash = preg_replace('/\s/', '', $accessHash);
    
  • オプション:PHP cPanel-APIラッパーを使用すると、このような作業が非常に簡単になります。

于 2011-12-18T10:03:14.463 に答える