0

Plesk API *のドキュメントには、次の cURL 関数が記載されています。

function curlInit($host, $login, $password)

{

  $curl = curl_init();

  curl_setopt($curl, CURLOPT_URL, "https://{$host}:8443/enterprise/control/agent.php");

  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

  curl_setopt($curl, CURLOPT_POST,           true);

  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

  curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

  curl_setopt($curl, CURLOPT_HTTPHEADER,

         array("HTTP_AUTH_LOGIN: {$login}",

                "HTTP_AUTH_PASSWD: {$password}",

                "HTTP_PRETTY_PRINT: TRUE",

                "Content-Type: text/xml")

  );



  return $curl;
}

いくつか質問があります。

  1. アンダースコアが含まれる HTTP ヘッダーは、他のどこにも見たことがありません。これはドキュメントのエラーですか?

  2. いったい何HTTP_PRETTY_PRINTですか?これを検索すると、Plesk のドキュメントに戻るだけです。他では見られません。

  3. の代わりにHTTP_AUTH_LOGINandを使用するとどうなりますか?HTTP_AUTH_PASSWDCURLOPT_USERPWD

ちなみに、どのオプションを試しても、Plesk から次のような応答が返ってきました。

HTTP/1.1 404 Not Found
X-UA-Compatible: IE=EmulateIE7
Content-Type: text/html
Content-Length: 345
Date: Wed, 27 Jun 2012 14:58:15 GMT
Server: sw-cp-server
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
  <title>404 - Not Found</title>
 </head>
 <body>
  <h1>404 - Not Found</h1>
 </body>
</html>

* Parallels Plesk Panel 9.5:: API RPC プロトコル 開発者ガイド > クライアント コード サンプル > PHP クライアント アプリケーション

4

2 に答える 2

2
  1. Pleskは独自のヘッダーを使用します。カスタムHTTPリクエストでは、有効なヘッダーを追加できます。たとえば、一部のWebサーバーは、「powered by:xxxx」のような独自のヘッダーを追加するため、問題ありません。
  2. きれいなXML出力にはきれいな印刷ヘッダーが必要です。
  3. ヘッダーには、パネルユーザーのHTTP_AUTH_LOGINログイン名が含まれています。HTTP_AUTH_PASSWDヘッダーには、パネルユーザーのパスワードが含まれています。CURLOPT_USERPWD必須ではありません。
  4. 次のオプションを使用してみてください。

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8');
    curl_setopt($ch, CURLOPT_POSTFIELDS, $packet);
    curl_setopt($ch, CURLOPT_TIMEOUT, 1200); //wait 20min
    $response = curl_exec($ch);
    
于 2012-06-28T05:07:57.323 に答える
2

ポイント 4 の場合:

404 は、ファイル.../enterprise/control/agent.phpがサーバーから削除されたことを意味します。多くは、パッチが出荷される前に、セキュリティの脆弱性から保護するために数か月前に行っていました。/usr/local/psa/admin/logs/httpsd_access_logファイルのエラーと可用性を確認することをお勧めします/usr/local/psa/admin/htdocs/enterprise/control/agent.php

于 2012-07-02T12:30:30.170 に答える